Accéder au contenu.
Menu Sympa

fr - [sympa-fr] Souci changement d'adresse mail

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: Jean-Luc Oms <adresse@cachée>
  • To: adresse@cachée
  • Subject: [sympa-fr] Souci changement d'adresse mail
  • Date: Wed, 25 May 2016 14:40:15 +0200

Bonjour,

Le dernier petit souci qui subsiste sur mon install toute neuve de la 6.2.15 concerne le changement d'adresse mail.

Pour résumer, le boulot est fait correctement (subscriber et proprio/modo), mais le rectangle vert fugace indiquant que le changement d'@ mail a bien été effectué, et aussitôt recouvert d'un "Internal SERVER ERROR(change_email)" ....

C'est accompagné de 2 fois le mail suivant à listmaster:

L'utilisateur adresse@cachée a été confronté à une erreur interne
(Interface web - ACTION : Command process) :

La mise à jour de l'utilisateur 'HASH(0x9495b68)' dans la base a échoué
(ancienne adresse : adresse@cachée)

Consultez les logs pour plus de détails.

Après fouille et traçage, le souci vient du traitement fait dans user_table :

1) dans le cas de 2 utilisateurs 'locaux' qui sont présents dans la table user_table, u1 veut devenir u2, le traitement est si j'ai bien décrypté:

    - u2 est effacé si présent de la table

    - le mail de u1 devient celui de u2

C'est là que ça coince, car à ce moment là u1 n'est plus dans la table user, ce qui explique que le Update ne modifie rien et la sortie sur erreur.

(A noter que j'ai le même comportement pour 2 utilisateurs LDAP, pourquoi modifier la table user dans ce cas ?)

J'ai eu beau fouiller le code, je ne trouve rien qui pourrait effacer u1 lors du traitement, mais vu de mysql, u1 est présent avant le changement d'email, et ni u1, ni u2 ne sont dans la table à la fin !

Je joint les traces non standard, et le bout de code qui me semble en à l'origine du pb ...

Merci pour tes lumières David, car j'y perds mon peu de Perl.

Jean-Luc Oms


Trace typique (ici 2 utilisateurs LDAP, c'est identique avec des users locaux):

May 25 14:16:16 sympa wwsympa[1610]: info Sympa::User::delete_global_user(delete_global adresse@cachée  )
May 25 14:16:16 sympa wwsympa[1610]: info main::do_change_email() WWSympa change_email4 adresse@cachée adresse@cachée lirmm.fr
May 25 14:16:16 sympa wwsympa[1610]: info main::do_change_email() WWSympa change_email5 adresse@cachée HASH
May 25 14:16:16 sympa wwsympa[1610]: info main::do_change_email() WWSympa ERASE_email7 adresse@cachée
May 25 14:16:16 sympa wwsympa[1610]: info Sympa::User::delete_global_user(delete_global adresse@cachée  )
May 25 14:16:16 sympa wwsympa[1610]: info main::do_change_email() WWSympa change_email7 adresse@cachée devient adresse@cachée
May 25 14:16:16 sympa wwsympa[1610]: info Sympa::User::update_global_user(who1 adresse@cachée  HASH)
May 25 14:16:16 sympa wwsympa[1610]: info Sympa::User::update_global_user(whoValue email  adresse@cachée)
May 25 14:16:16 sympa wwsympa[1610]: info Sympa::User::update_global_user(whoValueAA  )
May 25 14:16:16 sympa wwsympa[1610]: info Sympa::User::update_global_user(whoValueAB  )
May 25 14:16:16 sympa wwsympa[1610]: info Sympa::User::update_global_user(whoValueAC 0 'adresse@cachée' email_user='adresse@cachée')
May 25 14:16:16 sympa wwsympa[1610]: info Sympa::User::update_global_user(whoValueAD  )
May 25 14:16:16 sympa wwsympa[1610]: info Sympa::User::update_global_user(whoValueAE  )
May 25 14:16:17 sympa wwsympa[1610]: notice Sympa::Spindle::ProcessTemplate::_twist() Processing Sympa::Message::Template <adresse@cachée,8583>; adresse@cachée; adresse@cachée; recipients=ARRAY; adresse@cachée; template=listmaster_notification; type=web_intern_error; action="Command" process
May 25 14:16:17 sympa wwsympa[1610]: notice Sympa::Bulk::store() Message Sympa::Message::Template <adresse@cachée,8583> is stored into bulk spool as <adresse@cachée,1610,476>
May 25 14:16:17 sympa wwsympa[1610]: info main::do_change_email() [robot lirmm.fr] [session 10684689369120] [client 172.30.0.215] [user adresse@cachée] Update failed
May 25


Passage de User.pm:

    ## Update field

    push @sth_stack, $sth;

   
    $sth = $sdm->do_query(
        "UPDATE user_table SET %s WHERE (email_user=%s)",
        join(',', @set_list),
        $sdm->quote($who)
    );
    #jlo
    my $jlorows = $sth->rows;
    my $jloqwho = $sdm->quote($who);
    $log->syslog('info', '(whoValueAC %s %s %s)',$jlorows,$jloqwho,join(',', @set_list));

    unless (defined $sth) {
        $log->syslog('err',
            'Could not update information for user %s in user_table', $who);
        $sth = pop @sth_stack;
        return undef;
    }
    #jlo
    $log->syslog('info', '(whoValueAD  )');

    unless ($sth->rows) {
        $sth = pop @sth_stack;
        #jlo
        $log->syslog('info', '(whoValueAE  )');
        return 0;
    }




-- 
__________________________________________

 Jean-Luc Oms
 STI-RéseauX - LIRMM - CNRS/UM2
 161 rue Ada - BAT 4 - CC 477
 34095 Montpellier cedex 5
 Tel +33 4 67 41 85 93
 Urg +33 6 32 01 04 17
__________________________________________

Attachment: smime.p7s
Description: Signature cryptographique S/MIME




Archives gérées par MHonArc 2.6.19+.

Haut de le page