Mailman 2.1.15 and later crashes on more email
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
GNU Mailman |
Fix Released
|
Medium
|
Mark Sapiro |
Bug Description
After upgrading from Mailman 2.1.14 to 2.1.15 we noticed a steep increase in the number of shunted email. The error message is the following:
File "/var/lib/
self.
File "/var/lib/
keepqueued = self._dispose(
File "/var/lib/
more = self._dopipelin
File "/var/lib/
sys.
File "/var/lib/
headers += getDecodedHeade
File "/var/lib/
v = decode_
File "/usr/lib/
raise HeaderParseError
HeaderParseError
The older version of SpamDetect.py did not crash nearly as often. The reason seems to be that now python's email module is used and it crashes much more often than the earlier solution where the HeaderGenerator class in SpamDetect.py was used.
Related branches
Changed in mailman: | |
status: | Fix Committed → Fix Released |
I'm not convinced that the post 2.1.14 changes are responsible. There could be a bug in email.Header. decode_ header( ), but the main difference is the 2.1.14 method didn't decode RFC 2047 encoded headers. It could be that the messages that throw the exception are all malformed spam anyway. In any case, please provide one or more of the messages that cause the exception to be thrown.
Also, it will be easy to catch the exception and prevent the shunting, but what should be done with the message? At this point in the processing, we don't know what rule if any this header might match. I am inclined to do one of two things:
1) just leave the header undecoded.
2) replace the header along the lines of "Header-Name: unparseable RFC 2047 encoding" becomes "X-Undecodable- Header: Header-Name: unparseable RFC 2047 encoding".
Any thoughts?