[Mailman-Users] mailman upgrade failing

Mark Sapiro mark at msapiro.net
Tue Mar 8 05:00:32 CET 2011


Noah wrote:

>response below
>
>On 3/4/11 2:26 PM, Mark Sapiro wrote:
[...]
>> Caveat: I know virtually nothing about Debian packaging or apt-get.
[...]
>
>I am wondering if matching the OS and arch would stop the qrunner from 
>hanging.


I don't know.


>here is what is appearing in the error logs when I restart 
>qrunner.
>
>Mark:  Do you have any ideas about how to force apt-get to consider 
>using the version with the proper OS/arch version?  Like can I change a 
>version file to get this update to happen?


See my caveat above, but be aware that qrunners are python processes
and are architecture independent.


>Mar 07 17:05:15 2011 (4382) Uncaught runner exception: No terminating 
>boundary and no trailing empty line
>Mar 07 17:05:15 2011 (4382) Traceback (most recent call last):
>   File "/usr/lib/mailman/Mailman/Queue/Runner.py", line 100, in _oneloop
>     msg, msgdata = self._switchboard.dequeue(filebase)
>   File "/usr/lib/mailman/Mailman/Queue/Switchboard.py", line 164, in 
>dequeue
>     msg = email.message_from_string(msg, Message.Message)
>   File "/usr/lib/mailman/pythonlib/email/__init__.py", line 51, in 
>message_from_string
>     return Parser(_class, strict=strict).parsestr(s)
>   File "/usr/lib/mailman/pythonlib/email/Parser.py", line 75, in parsestr
>     return self.parse(StringIO(text), headersonly=headersonly)
>   File "/usr/lib/mailman/pythonlib/email/Parser.py", line 64, in parse
>     self._parsebody(root, fp, firstbodyline)
>   File "/usr/lib/mailman/pythonlib/email/Parser.py", line 240, in 
>_parsebody
>     msgobj = self.parsestr(part)
>   File "/usr/lib/mailman/pythonlib/email/Parser.py", line 75, in parsestr
>     return self.parse(StringIO(text), headersonly=headersonly)
>   File "/usr/lib/mailman/pythonlib/email/Parser.py", line 64, in parse
>     self._parsebody(root, fp, firstbodyline)
>   File "/usr/lib/mailman/pythonlib/email/Parser.py", line 265, in 
>_parsebody
>     msg = self.parse(fp)
>   File "/usr/lib/mailman/pythonlib/email/Parser.py", line 64, in parse
>     self._parsebody(root, fp, firstbodyline)
>   File "/usr/lib/mailman/pythonlib/email/Parser.py", line 207, in 
>_parsebody
>     'No terminating boundary and no trailing empty line')
>BoundaryError: No terminating boundary and no trailing empty line
>
>Mar 07 17:05:15 2011 (4382) Ignoring unparseable message: 
>1298451764.843303+0cd1f7dcf1029a246fe05146c55b8c7518fd0a1f


There are two things going on here. First you have one or more
unparseable messages in a queue, probably the in/ queue (qfiles/in/).
That's what causes the above error. The message is a MIME multipart
message with no terminating boundary, possibly malformed spam or a
message that got truncated.

The other problem is there is a bug in Mailman 2.1.9 that causes the
backup queue entry (a .bak file) to be left behind when the
BoundaryError occurs. This causes the same messages to be recovered
and reprocessed when the qrunner (probably IncomingRunner) is stopped
and restarted.

You need to patch Mailman/Queue/Runner.py with the attached
Runner.patch.txt patch to fix the bug. Then when you restart Mailman,
you will see the unparseable messages, but they will not be left
behind to be processed again.

However, the bad news is I don't think this has anything to do with
qrunner hangs, but apply the patch and restart Mailman, and if a
runner subsequently hangs, post

which runner?

contents of Mailman's 'error and qrunner logs

If you can get any relevant info about the hung runner with gdb, post
that too.

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

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: Runner.patch.txt
URL: <http://mail.python.org/pipermail/mailman-users/attachments/20110307/7fb9a1dc/attachment.txt>


More information about the Mailman-Users mailing list