[Mailman-Users] mails stuck in shunt folder

Mark Sapiro msapiro at value.net
Wed Feb 14 16:23:32 CET 2007

kamalakannan wrote:

>       I have mailman 2.1.9, some of the mails stuck in shunt folder. 
>these mails are not delivered even
>after using unshunt command.

That's because unshunt requeues the message in it's original queue, and
the same error occurs again because you haven't fixed the underlying
problem that causes the shunting in the first place.

>Below are the errors in mailman log.
>Feb 14 13:36:46 2007 (1196) SHUNTING: 
>Feb 14 13:36:47 2007 (1196) Uncaught runner exception: unpickling stack 
>Feb 14 13:36:47 2007 (1196) Traceback (most recent call last):
>  File "/list/mailman/Mailman/Queue/Runner.py", line 112, in _oneloop
>    self._onefile(msg, msgdata)
>  File "/list/mailman/Mailman/Queue/Runner.py", line 170, in _onefile
>    keepqueued = self._dispose(mlist, msg, msgdata)
>  File "/list/mailman/Mailman/Queue/ArchRunner.py", line 73, in _dispose
>    mlist.ArchiveMail(msg)
>  File "/list/mailman/Mailman/Archiver/Archiver.py", line 215, in 
>    h = HyperArch.HyperArchive(self)
>  File "/list/mailman/Mailman/Archiver/HyperArch.py", line 641, in __init__
>    self.__super_init(dir, reload=1, database=db)
>  File "/list/mailman/Mailman/Archiver/pipermail.py", line 300, in __init__
>    d = pickle.load(f)
>UnpicklingError: unpickling stack underflow

The underlying problem appears to be a corrupt pickle for the list's
archive. This is the file archives/private/<listname>/pipermail.pck.

I'm guessing this is only happening for one list. If you don't know
which list, you can dump a shunt queue entry with bin/dumpdb and get
the listname from the metadata.

BTW, this only affects archiving. The posts were delivered when
originally processed.  Also, the posts were added to the
archives/private/<listname>.mbox/<listname>.mbox file before this
error ocurred, so I think the easiest solution (assuming the
archives/private/<listname>.mbox/<listname>.mbox has not been
previously pruned) is to

1) rebuild the archive with
   bin/arch --wipe <listname>
2) examine the shunt queue entries with bin/dumpdb or bin/show_qfiles
   and verify they are in the rebuilt archive.
3) remove the unneeded shunt queue entries.

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

More information about the Mailman-Users mailing list