I tried the "sleep" approach as well. But then I thought that it was not viable. I am setting a relatively high number of mailing list that will receive asynchronous "subscribe" requests via web and/or shell API.

It would be simply not possible to prevent bug this from happening as the chance of two "subscribe" being processsed almost simultaneously are not that small...

I also vote for some kind of timing/lock issue.

Max

Barry Finkel wrote:
Max Lanfranconi <[EMAIL PROTECTED]> wrote:

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 PROTECTED] testpwd
/usr/local/mailman/bin/newlist -q -e url.domain.com testlist2
[EMAIL PROTECTED] testpwd
/usr/local/mailman/bin/newlist -q -e url.domain.com testlist3
[EMAIL PROTECTED] testpwd
/usr/local/mailman/bin/newlist -q -e url.domain.com testlist4
[EMAIL PROTECTED] testpwd
/usr/local/mailman/bin/newlist -q -e url.domain.com testlist5
[EMAIL PROTECTED] testpwd
/usr/local/mailman/bin/newlist -q -e url.domain.com testlist6
[EMAIL PROTECTED] testpwd


echo "[EMAIL PROTECTED]" | /usr/local/mailman/bin/add_members -r - testlist1
echo "[EMAIL PROTECTED]" | /usr/local/mailman/bin/add_members -r - testlist2
echo "[EMAIL PROTECTED]" | /usr/local/mailman/bin/add_members -r - testlist3
echo "[EMAIL PROTECTED]" | /usr/local/mailman/bin/add_members -r - testlist4
echo "[EMAIL PROTECTED]" | /usr/local/mailman/bin/add_members -r - testlist5
echo "[EMAIL PROTECTED]" | /usr/local/mailman/bin/add_members -r - testlist6
echo "[EMAIL PROTECTED]" | /usr/local/mailman/bin/add_members -r - testlist1
echo "[EMAIL PROTECTED]" | /usr/local/mailman/bin/add_members -r - testlist2
echo "[EMAIL PROTECTED]" | /usr/local/mailman/bin/add_members -r - testlist3
echo "[EMAIL PROTECTED]" | /usr/local/mailman/bin/add_members -r - testlist4
echo "[EMAIL PROTECTED]" | /usr/local/mailman/bin/add_members -r - testlist5
echo "[EMAIL PROTECTED]" | /usr/local/mailman/bin/add_members -r - testlist6

After a short wait the following output is received:

Subscribed: [EMAIL PROTECTED]
Subscribed: [EMAIL PROTECTED]
Subscribed: [EMAIL PROTECTED]
Subscribed: [EMAIL PROTECTED]
Subscribed: [EMAIL PROTECTED]
Subscribed: [EMAIL PROTECTED]
Subscribed: [EMAIL PROTECTED]
Subscribed: [EMAIL PROTECTED]
Subscribed: [EMAIL PROTECTED]
Subscribed: [EMAIL PROTECTED]
Subscribed: [EMAIL PROTECTED]
Subscribed: [EMAIL PROTECTED]

[EMAIL PROTECTED] receives 6 confirmation emails, as [EMAIL PROTECTED] does. S
o far so
good.

At this point testlist1-6 each should contain 2 subscribers: [EMAIL PROTECTED]
and [EMAIL PROTECTED]

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 PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]

in which three instances of [EMAIL PROTECTED] 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

I ran the script (after some minor modifications) on

     Ubuntu Dapper
     Mailman 2.1.11  (self-built package)
     Python 2.4.3 (#2, Oct  6 2006, 07:49:22)

and I get similar results:

     Script started on Tue 05 Aug 2008 09:45:31 AM CDT
     # set prompt="mailman11-test# "
     mailman11-test# ./replicate_bug.exec
     Remove the components of a mailing list with impunity - beware!

     This removes (almost) all traces of a mailing list.  By default, the lists
     archives are not removed, which is very handy for retiring old lists.

     Usage:
         rmlist [-a] [-h] listname

     Where:
         --archives
         -a
             Remove the list's archives too, or if the list has already been
             deleted, remove any residual archives.

         --help
         -h
             Print this help message and exit.


     No such list (or list already deleted): testlist1
     Remove the components of a mailing list with impunity - beware!

     This removes (almost) all traces of a mailing list.  By default, the lists
     archives are not removed, which is very handy for retiring old lists.

     Usage:
         rmlist [-a] [-h] listname

     Where:
         --archives
         -a
             Remove the list's archives too, or if the list has already been
             deleted, remove any residual archives.

         --help
         -h
             Print this help message and exit.


     No such list (or list already deleted): testlist2
     Remove the components of a mailing list with impunity - beware!

     This removes (almost) all traces of a mailing list.  By default, the lists
     archives are not removed, which is very handy for retiring old lists.

     Usage:
         rmlist [-a] [-h] listname

     Where:
         --archives
         -a
             Remove the list's archives too, or if the list has already been
             deleted, remove any residual archives.

         --help
         -h
             Print this help message and exit.


     No such list (or list already deleted): testlist3
     Remove the components of a mailing list with impunity - beware!

     This removes (almost) all traces of a mailing list.  By default, the lists
     archives are not removed, which is very handy for retiring old lists.

     Usage:
         rmlist [-a] [-h] listname

     Where:
         --archives
         -a
             Remove the list's archives too, or if the list has already been
             deleted, remove any residual archives.

         --help
         -h
             Print this help message and exit.


     No such list (or list already deleted): testlist4
     Remove the components of a mailing list with impunity - beware!

     This removes (almost) all traces of a mailing list.  By default, the lists
     archives are not removed, which is very handy for retiring old lists.

     Usage:
         rmlist [-a] [-h] listname

     Where:
         --archives
         -a
             Remove the list's archives too, or if the list has already been
             deleted, remove any residual archives.

         --help
         -h
             Print this help message and exit.


     No such list (or list already deleted): testlist5
     Remove the components of a mailing list with impunity - beware!

     This removes (almost) all traces of a mailing list.  By default, the lists
     archives are not removed, which is very handy for retiring old lists.

     Usage:
         rmlist [-a] [-h] listname

     Where:
         --archives
         -a
             Remove the list's archives too, or if the list has already been
             deleted, remove any residual archives.

         --help
         -h
             Print this help message and exit.


     No such list (or list already deleted): testlist6
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     mailman11-test# foreach list (1 2 3 4 5 6)
     ?      echo $list
     ?      list_members testlist$list
     ? end
     1
     [EMAIL PROTECTED]
     [EMAIL PROTECTED]
     2
     [EMAIL PROTECTED]
     [EMAIL PROTECTED]
     3
     [EMAIL PROTECTED]
     [EMAIL PROTECTED]
     4
     [EMAIL PROTECTED]
     [EMAIL PROTECTED]
     5
     [EMAIL PROTECTED]
     6
     [EMAIL PROTECTED]
     mailman11-test# =======================================================
     mailman11-test# ./replicate_bug.exec
     Not removing archives.  Reinvoke with -a to remove them.
     Removing list info
     Not removing archives.  Reinvoke with -a to remove them.
     Removing list info
     Not removing archives.  Reinvoke with -a to remove them.
     Removing list info
     Not removing archives.  Reinvoke with -a to remove them.
     Removing list info
     Not removing archives.  Reinvoke with -a to remove them.
     Removing list info
     Not removing archives.  Reinvoke with -a to remove them.
     Removing list info
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     mailman11-test# foreach list (1 2 3 4 5 6)
     ?           echo $list
     ?           list_members testlist$list
     ? end
     1
     [EMAIL PROTECTED]
     [EMAIL PROTECTED]
     2
     [EMAIL PROTECTED]
     [EMAIL PROTECTED]
     3
     [EMAIL PROTECTED]
     4
     [EMAIL PROTECTED]
     5
     [EMAIL PROTECTED]
     6
     [EMAIL PROTECTED]
     mailman11-test# =======================================================
     mailman11-test# ./replicate_bug.exec
     Not removing archives.  Reinvoke with -a to remove them.
     Removing list info
     Not removing archives.  Reinvoke with -a to remove them.
     Removing list info
     Not removing archives.  Reinvoke with -a to remove them.
     Removing list info
     Not removing archives.  Reinvoke with -a to remove them.
     Removing list info
     Not removing archives.  Reinvoke with -a to remove them.
     Removing list info
     Not removing archives.  Reinvoke with -a to remove them.
     Removing list info
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     Subscribed: [EMAIL PROTECTED]
     mailman11-test# foreach list (1 2 3 4 5 6)
     ?          echo $list
     ?          list_members testlist$list
     ? end
     1
     [EMAIL PROTECTED]
     2
     [EMAIL PROTECTED]
     [EMAIL PROTECTED]
     3
     [EMAIL PROTECTED]
     4
     [EMAIL PROTECTED]
     5
     [EMAIL PROTECTED]
     6
     [EMAIL PROTECTED]
     mailman11-test# exit

     Script done on Tue 05 Aug 2008 09:50:48 AM CDT

I then added

     sleep 5

after each "add_members" line, and the output looked fine.
I changed the sleep interval from 5 down to 1 in successive
runs, and each output looks fine; each list has the proper two
subscribers.  Is there a timing issue here?
----------------------------------------------------------------------
Barry S. Finkel
Computing and Information Systems Division
Argonne National Laboratory          Phone:    +1 (630) 252-7277
9700 South Cass Avenue               Facsimile:+1 (630) 252-4601
Building 222, Room D209              Internet: [EMAIL PROTECTED]
Argonne, IL   60439-4828             IBMMAIL:  I1004994

------------------------------------------------------
Mailman-Users mailing list
[EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-users/max.lanfranconi%40sun.com

Security Policy: http://wiki.list.org/x/QIA9

_______________________________________________
Mailman-Developers mailing list
[email protected]
http://mail.python.org/mailman/listinfo/mailman-developers
Mailman FAQ: http://wiki.list.org/x/AgA3
Searchable Archives: 
http://www.mail-archive.com/mailman-developers%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-developers/archive%40jab.org

Security Policy: http://wiki.list.org/x/QIA9

Reply via email to