Subscriber "disappears" after subscription

Bug #266464 reported by Mlanfranconi
22
This bug affects 3 people
Affects Status Importance Assigned to Milestone
GNU Mailman
Fix Released
Medium
Mark Sapiro

Bug Description

Mailman 2.1.11
Python 2.4.4
OS Solaris 2.11

Hi,

I have been able to reproduce this bug consistently by running the
replicate_bug script:

replicate _bug is the following:

#!/bin/sh
/usr/local/mailman/bin/rmlist testlist1
/usr/local/mailman/bin/rmlist testlist2
/usr/local/mailman/bin/rmlist testlist3
/usr/local/mailman/bin/rmlist testlist4
/usr/local/mailman/bin/rmlist testlist5
/usr/local/mailman/bin/rmlist testlist6
/usr/local/mailman/bin/newlist -q -e url.domain.com testlist1
<email address hidden> testpwd
/usr/local/mailman/bin/newlist -q -e url.domain.com testlist2
<email address hidden> testpwd
/usr/local/mailman/bin/newlist -q -e url.domain.com testlist3
<email address hidden> testpwd
/usr/local/mailman/bin/newlist -q -e url.domain.com testlist4
<email address hidden> testpwd
/usr/local/mailman/bin/newlist -q -e url.domain.com testlist5
<email address hidden> testpwd
/usr/local/mailman/bin/newlist -q -e url.domain.com testlist6
<email address hidden> testpwd

echo "<email address hidden>" | /usr/local/mailman/bin/add_members -r - testlist1
echo "<email address hidden>" | /usr/local/mailman/bin/add_members -r - testlist2
echo "<email address hidden>" | /usr/local/mailman/bin/add_members -r - testlist3
echo "<email address hidden>" | /usr/local/mailman/bin/add_members -r - testlist4
echo "<email address hidden>" | /usr/local/mailman/bin/add_members -r - testlist5
echo "<email address hidden>" | /usr/local/mailman/bin/add_members -r - testlist6
echo "<email address hidden>" | /usr/local/mailman/bin/add_members -r - testlist1
echo "<email address hidden>" | /usr/local/mailman/bin/add_members -r - testlist2
echo "<email address hidden>" | /usr/local/mailman/bin/add_members -r - testlist3
echo "<email address hidden>" | /usr/local/mailman/bin/add_members -r - testlist4
echo "<email address hidden>" | /usr/local/mailman/bin/add_members -r - testlist5
echo "<email address hidden>" | /usr/local/mailman/bin/add_members -r - testlist6

After a short wait the following output is received:

Subscribed: <email address hidden>
Subscribed: <email address hidden>
Subscribed: <email address hidden>
Subscribed: <email address hidden>
Subscribed: <email address hidden>
Subscribed: <email address hidden>
Subscribed: <email address hidden>
Subscribed: <email address hidden>
Subscribed: <email address hidden>
Subscribed: <email address hidden>
Subscribed: <email address hidden>
Subscribed: <email address hidden>

<email address hidden> receives 6 confirmation emails, as <email address hidden> does. So far so
good.

At this point testlist1-6 each should contain 2 subscribers: <email address hidden>
and <email address hidden>

BUT

/usr/local/mailman/bin/list_members testlist1
/usr/local/mailman/bin/list_members testlist2
/usr/local/mailman/bin/list_members testlist3
/usr/local/mailman/bin/list_members testlist4
/usr/local/mailman/bin/list_members testlist5
/usr/local/mailman/bin/list_members testlist6

invariably produce some random combination in which one or more of the
subscribers are missing:
for example:
<email address hidden>
<email address hidden>
<email address hidden>
<email address hidden>
<email address hidden>
<email address hidden>
<email address hidden>
<email address hidden>
<email address hidden>

in which three instances of <email address hidden> are missing...

No Errors in any Mailman log.
Thanks in advance for your help. Please let me know if you need additional
details.
Regards,
Max

[http://sourceforge.net/tracker/index.php?func=detail&aid=2037414&group_id=103&atid=100103]

Related branches

Revision history for this message
Mark Sapiro (msapiro) wrote :

Originator: NO

Thanks for the script. It was helpful in finding the problem. The analysis
of the cause of the problem and potential fix is at
<http://mail.python.org/pipermail/mailman-developers/2008-August/020330.html>.

Mark Sapiro (msapiro)
Changed in mailman:
milestone: 2.1-stable → 2.1.15
status: Confirmed → Fix Committed
Mark Sapiro (msapiro)
Changed in mailman:
status: Fix Committed → Fix Released
Revision history for this message
Uli (butschi) wrote :

The bug was not completly fixed in Mailman 2.1.15.

self.__timestamp is set after the loading AND parsing of the file. With large files the parsing may
need 1-2 seconds and in the meantime a new file, but older then the self.__timestamp set after the parsing ist written:

(1) Nov 16 21:02:54 2016 (57765) Try-Load config file /var/lib/mailman/lists/XY/config.pck
-> Load

(2) Nov 16 21:02:54 2016 (57765) 1479326518 mtime(/var/lib/mailman/lists/XY/config.pck)
-> Check mtime

(3) Nov 16 21:02:54 2016 (57765) 0 (self.__timestamp)
-> self.__timestamp is not set -> Load-File

(4) Nov 16 21:02:54 2016 (57765) 1479326574 (Time before Load of config.pck)
-> Timestamp int(time.time()) before the loading of the pickle file.

(5) Nov 16 21:02:55 2016 (57765) 1479326575 (Time after Loading unpickling File = self.__timestamp)
-> Timestamp after the Loading of the pickle file. The unpickling needs some time due to large List
   with 200.000 subscribers The parsing needs 1 second, timestamps differ.

(6) Nov 16 21:02:55 2016 (57765) Try-Loaded config file /var/lib/mailman/lists/neuerscheinungen/config.pck
-> Reload/Check Pickle-File

(7) Nov 16 21:02:55 2016 (57765) 1479326574 mtime(/var/lib/mailman/lists/XY/config.pck)
-> Check mtime (file is older than self.__timestamp), but nervertheless changed after the Loading
   in (5)

(8) Nov 16 21:02:55 2016 (57765) 1479326575 SelfTimestamp
-> Wrong Data saved

Revision history for this message
Mark Sapiro (msapiro) wrote :
Changed in mailman:
milestone: 2.1.15 → 2.1.24
status: Fix Released → Fix Committed
Mark Sapiro (msapiro)
Changed in mailman:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.