[Mailman-Users] bug when subscribing via web

Mark Sapiro msapiro at value.net
Mon Sep 10 23:55:52 CEST 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Maulwurf wrote:
> 
> when users try to subscribe via the list-info-page
> http://listen.esel.at/mailman/listinfo/liste
> 
> they get:
> "Bug in Mailman version 2.1.9. We're sorry, we hit a bug! (...)"
> 
> The error only occurs when the "subscribe policy" is set to "confirm".
> as a workaround i have now changed it to "confirm and approve"
> (which i absolutely don´t want - it is an open list!)


Are you sure changing to "confirm and approve" avoids the problem. I can
see that changing to "approve" might appear to avoid it , but the
traceback below indicates the problem is in adding the confirmation to
the pending database which is done for both "confirm" and "confirm and
approve".


> unfortunately i do not know what i could do to re-open subscription to 
> the list (i am pretty new to adminstrating the server myself - i read an 
> searched the FAQ, this list´s archives and tried googeling the error,... 
> to no avail)
> 
> below i pasted the last entries i found in mailman/logs/error
> and i assume it is concerning the problems with subscriptions...
> 
> can any of you point me in a direction what to do, please?
> thank you very much!


You appear to have two problems. See below:


> Sep 10 22:08:28 2007 (25770) SHUNTING: 
> 1189454907.852814+277712357e7c1be6faec2f3da3c5d5948b5e1fcd
> Sep 10 22:12:27 2007 admin(26476): 
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> admin(26476): [----- Mailman Version: 2.1.9 -----]
> admin(26476): [----- Traceback ------]
> admin(26476): Traceback (most recent call last):
> admin(26476):   File "/var/lib/mailman/scripts/driver", line 110, in 
> run_main
> admin(26476):     main()
> admin(26476):   File "/usr/lib/mailman/Mailman/Cgi/subscribe.py", line 
> 96, in main
> admin(26476):     process_form(mlist, doc, cgidata, language)
> admin(26476):   File "/usr/lib/mailman/Mailman/Cgi/subscribe.py", line 
> 176, in process_form
> admin(26476):     mlist.AddMember(userdesc, remote)
> admin(26476):   File "/usr/lib/mailman/Mailman/MailList.py", line 874, 
> in AddMember
> admin(26476):     cookie = self.pend_new(Pending.SUBSCRIPTION, userdesc)
> admin(26476):   File "/usr/lib/mailman/Mailman/Pending.py", line 65, in 
> pend_new
> admin(26476):     db = self.__load()
> admin(26476):   File "/usr/lib/mailman/Mailman/Pending.py", line 95, in 
> __load
> admin(26476):     return cPickle.load(fp)
> admin(26476): EOFError


This traceback is from the submission of the subscribe form (for the
liste list) and indicates the lists/liste/Pending.pck file is corrupt.


> admin(26476): [----- Python Information -----]
> admin(26476): sys.version     =   2.4.4c1 (#2, Oct 11 2006, 21:51:02)
> [GCC 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)]
> admin(26476): sys.executable  =   /usr/bin/python
> admin(26476): sys.prefix      =   /usr
> admin(26476): sys.exec_prefix =   /usr
> admin(26476): sys.path        =   /usr
> admin(26476): sys.platform    =   linux2
> admin(26476): [----- Environment Variables -----]
> admin(26476):   HTTP_COOKIE: 
> esel-mehl+admin=280200000069545ce546732800000063316532626635363365623630643337336664333638346264366163663330373134396139363036; 
> barbarakraus+admin=2802000000699f6ce5467328000000
> admin(26476):   SERVER_SOFTWARE: Apache/2.0.55 (Ubuntu) PHP/4.4.2-1.1 
> mod_ssl/2.0.55 OpenSSL/0.9.8b
> admin(26476):   SCRIPT_NAME: /mailman/subscribe
> admin(26476):   SERVER_SIGNATURE: <address>Apache/2.0.55 (Ubuntu) 
> PHP/4.4.2-1.1 mod_ssl/2.0.55 OpenSSL/0.9.8b Server at listen.esel.at 
> Port 80</address>
> admin(26476):
> admin(26476):   REQUEST_METHOD: POST
> admin(26476):   HTTP_KEEP_ALIVE: 300
> admin(26476):   SERVER_PROTOCOL: HTTP/1.1
> admin(26476):   QUERY_STRING:
> admin(26476):   CONTENT_LENGTH: 114
> admin(26476):   HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7
> admin(26476):   HTTP_USER_AGENT: Mozilla/5.0 (Windows; U; Windows NT 
> 6.0; de; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
> admin(26476):   HTTP_CONNECTION: keep-alive
> admin(26476):   HTTP_REFERER: http://listen.esel.at/mailman/listinfo/liste
> admin(26476):   SERVER_NAME: listen.esel.at
> admin(26476):   REMOTE_ADDR: 80.108.74.152
> admin(26476):   PATH_TRANSLATED: /usr/lib/cgi-bin/mailman/listinfoliste
> admin(26476):   SERVER_PORT: 80
> admin(26476):   SERVER_ADDR: 195.177.250.190
> admin(26476):   DOCUMENT_ROOT: /var/www
> admin(26476):   PYTHONPATH: /var/lib/mailman
> admin(26476):   SCRIPT_FILENAME: /usr/lib/cgi-bin/mailman/subscribe
> admin(26476):   SERVER_ADMIN: esel at esel.at
> admin(26476):   HTTP_HOST: listen.esel.at
> admin(26476):   REQUEST_URI: /mailman/subscribe/liste
> admin(26476):   HTTP_ACCEPT: 
> application/x-shockwave-flash,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
> admin(26476):   GATEWAY_INTERFACE: CGI/1.1
> admin(26476):   REMOTE_PORT: 31324
> admin(26476):   HTTP_ACCEPT_LANGUAGE: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
> admin(26476):   CONTENT_TYPE: application/x-www-form-urlencoded
> admin(26476):   HTTP_ACCEPT_ENCODING: gzip,deflate
> admin(26476):   PATH_INFO: /liste
> 
> 
> Sep 10 22:14:31 2007 (25770) SHUNTING: 
> 1189455271.1651361+de373724ed67796268be1b225f00d9bc66e37145
> Sep 10 22:20:04 2007 (25770) Uncaught runner exception:
> Sep 10 22:20:04 2007 (25770) Traceback (most recent call last):
>    File "/usr/lib/mailman/Mailman/Queue/Runner.py", line 112, in _oneloop
>      self._onefile(msg, msgdata)
>    File "/usr/lib/mailman/Mailman/Queue/Runner.py", line 170, in _onefile
>      keepqueued = self._dispose(mlist, msg, msgdata)
>    File "/usr/lib/mailman/Mailman/Queue/IncomingRunner.py", line 130, in 
> _dispose
>      more = self._dopipeline(mlist, msg, msgdata, pipeline)
>    File "/usr/lib/mailman/Mailman/Queue/IncomingRunner.py", line 153, in 
> _dopipeline
>      sys.modules[modname].process(mlist, msg, msgdata)
>    File "/usr/lib/mailman/Mailman/Handlers/Moderate.py", line 109, in 
> process
>      Hold.hold_for_approval(mlist, msg, msgdata, Hold.NonMemberPost)
>    File "/usr/lib/mailman/Mailman/Handlers/Hold.py", line 224, in 
> hold_for_approval
>      id = mlist.HoldMessage(msg, reason, msgdata)
>    File "/usr/lib/mailman/Mailman/ListAdmin.py", line 189, in HoldMessage
>      self.__opendb()
>    File "/usr/lib/mailman/Mailman/ListAdmin.py", line 86, in __opendb
>      self.__db = cPickle.load(fp)
> MemoryError


This traceback is from an attempt to hold an incoming message. Here the
attempt to load the lists/<listname>/request.pck file caused a
MemoryError. Probably this file is huge because held messages and other
admin requests have not been dealt with.



> Sep 10 22:20:04 2007 (25770) SHUNTING: 
> 1189455603.670738+77fd9aa5b0d71bcaa3542509522b5c46e5f3aaf2


The message that hit the above error was shunted. Examining the
qfiles/shunt/1189455603.670738+77fd9aa5b0d71bcaa3542509522b5c46e5f3aaf2.pck
file with bin/show_qfiles or bin/dumpdb will tell you what list it was for.


> Sep 10 22:20:53 2007 (25770) Uncaught runner exception:
> Sep 10 22:20:53 2007 (25770) Traceback (most recent call last):
>    File "/usr/lib/mailman/Mailman/Queue/Runner.py", line 112, in _oneloop
>      self._onefile(msg, msgdata)
>    File "/usr/lib/mailman/Mailman/Queue/Runner.py", line 170, in _onefile
>      keepqueued = self._dispose(mlist, msg, msgdata)
>    File "/usr/lib/mailman/Mailman/Queue/IncomingRunner.py", line 130, in 
> _dispose
>      more = self._dopipeline(mlist, msg, msgdata, pipeline)
>    File "/usr/lib/mailman/Mailman/Queue/IncomingRunner.py", line 153, in 
> _dopipeline
>      sys.modules[modname].process(mlist, msg, msgdata)
>    File "/usr/lib/mailman/Mailman/Handlers/Moderate.py", line 109, in 
> process
>      Hold.hold_for_approval(mlist, msg, msgdata, Hold.NonMemberPost)
>    File "/usr/lib/mailman/Mailman/Handlers/Hold.py", line 224, in 
> hold_for_approval
>      id = mlist.HoldMessage(msg, reason, msgdata)
>    File "/usr/lib/mailman/Mailman/ListAdmin.py", line 189, in HoldMessage
>      self.__opendb()
>    File "/usr/lib/mailman/Mailman/ListAdmin.py", line 86, in __opendb
>      self.__db = cPickle.load(fp)
> MemoryError


Same thing for another message.

At this point, you will probably need to remove both the requests.pck
and pending.pck files for the offending list(s) and also remove the
heldmsg-<listname>-nnn.pck files from Mailman's data/ directory. This
will allow Mailman to create new requests.pck and pending.pck files for
the list(s), but all pending requests and successfully held messages
will be lost.

If the problem is that held messages have not been dealt with, you might
consider setting max_days_to_hold on the list's General Options page to
some non-zero value.

- --
Mark Sapiro <msapiro at value.net>       The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)

iD8DBQFG5b1nVVuXXpU7hpMRAtnQAKChG3+yxK4bslJrcbadcstGIsmNSwCglHV7
czuKJPGv93TySYP5vd/cCyY=
=bAgH
-----END PGP SIGNATURE-----


More information about the Mailman-Users mailing list