Changeset 76411 in spip-zone


Ignore:
Timestamp:
Sep 22, 2013, 7:03:21 PM (6 years ago)
Author:
cedric@…
Message:

Race condition & cache filer agressif : un premier processus pose la meta mailshot_processing et ajoute le genie mailhsot_bulksent dans la file. Un second processus arrive qq secondes plus tard, et voit la tache en attente, la lance, mais il a encore un vieux cache (disque) des meta sans mailshot_processing. Du coup le genie ne fait rien, rend la main, et n'est pas reprogrammé, sauf 5h plus tard environ quand le wtachdog verifie la liste des taches en file (Nicolas Dorigny)

On evite ce probleme en verifiant directement en sql dans le genie mailshot_processing puisqu'on est a priori jamais là pour rien. Par securité on pose la meta mailshot_processing en memoire pour etre sur que le genie sera relancé à la fin de son execution.

Location:
_plugins_/mailshot/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/mailshot/trunk/genie/mailshot_bulksend.php

    r75296 r76411  
    1010
    1111function genie_mailshot_bulksend_dist($t){
    12         // Rien a faire si la meta n'est pas la
    13         if (isset($GLOBALS['meta']['mailshot_processing'])){
     12        spip_log("bulksend:meta_processing:".$GLOBALS['meta']['mailshot_processing'],"mailshot");
     13        // Rien a faire si la meta pas de mailshots en cours
     14        // ne pas se fier a la meta ici pour des raisons de concurrence au demarrage d'un envoi
     15        if (sql_countsel("spip_mailshots","statut=".sql_quote('processing'))){
     16                // securite pour que le cron se relance
     17                // sera effacee dans mailshot_envoyer_lot si envoi fini
     18                $GLOBALS['meta']['mailshot_processing'] = 'oui';
    1419
    1520                include_spip('inc/mailshot');
     
    6772                        return -($t-$periode);
    6873        }
     74        else {
     75                mailshot_update_meta_processing();
     76        }
    6977        return 0;
    7078}
  • _plugins_/mailshot/trunk/paquet.xml

    r75964 r76411  
    22        prefix="mailshot"
    33        categorie="communication"
    4         version="1.5.9"
     4        version="1.5.10"
    55        etat="stable"
    66        compatibilite="[3.0.5;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.