ToDigest failing with missing attribute error

Bug #266318 reported by Grandcross
2
Affects Status Importance Assigned to Milestone
GNU Mailman
Fix Released
Medium
Unassigned

Bug Description

One of my list queues has stopped sending messages due
to a missing method:

Mar 03 18:11:02 2006 (16865) Uncaught runner exception:
'str' object has no attribute 'get'
Mar 03 18:11:02 2006 (16865) Traceback (most recent
call last):
  File "/usr/lib/mailman/Mailman/Queue/Runner.py", line
110, in _oneloop
    self._onefile(msg, msgdata)
  File "/usr/lib/mailman/Mailman/Queue/Runner.py", line
160, 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/ToDigest.py",
line 91, in process
    send_digests(mlist, mboxfp)
  File "/usr/lib/mailman/Mailman/Handlers/ToDigest.py",
line 132, in send_digests
    send_i18n_digests(mlist, mboxfp)
  File "/usr/lib/mailman/Mailman/Handlers/ToDigest.py",
line 217, in send_i18n_digests
    msgsubj = msg.get('subject', _('(no subject)'))
AttributeError: 'str' object has no attribute 'get'

Mar 03 18:11:02 2006 (16865) SHUNTING:
1141426524.2579081+81281f03f202e0386d5044adcef5083568986f9a

Digest mailbox has now gotten very large (> 4MB) so I
cant attach.

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

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

This looks like Mailman 2.1.5 or earlier. This problem was
fixed in 2.1.6. At line 210 in your
Mailman/Handlers/ToDigest.py you will see

    while msg is not None:
        if msg == '':
            # It was an unparseable message
            msg = mbox.next()
        msgcount += 1

You need to add a continue so this becomes

    while msg is not None:
        if msg == '':
            # It was an unparseable message
            msg = mbox.next()
            continue
        msgcount += 1

In the mean time, if you don't mind having your digest out
of sequence, just move the digest.mbox aside. Then you can
patch ToDigest.py and straighten out the digest situation.
Note that you probably don't want to both run bin/unshunt
and replace the digest.mbox as that will result in
duplicates, but if messages haven't reached the list, you
need to run bin/unshunt to finish processing them.

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

Absent any response to the contrary, I'm closing this per my
previous comment - fixed in 2.1.6.

Revision history for this message
Grandcross (grandcross) wrote :

This fixed the issue. Thanks! I'll upgrade to the later
version ASAP.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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