checkdbs cronjob fails with traceback

Asked by uebelhacker

Following traceback error occurs invoking "/usr/bin/python -S /usr/lib/mailman/cron/checkdbs" via cron and mailed to admin with mailman 2.1.11 and python 2.5.2.

strace output didn't give me a clue. Here's the traceback:

Traceback (most recent call last):
  File "/usr/lib/mailman/cron/checkdbs", line 203, in <module>
    main()
  File "/usr/lib/mailman/cron/checkdbs", line 88, in main
    count = mlist.NumRequestsPending()
  File "/usr/lib/mailman/Mailman/ListAdmin.py", line 132, in NumRequestsPending
    self.__opendb()
  File "/usr/lib/mailman/Mailman/ListAdmin.py", line 86, in __opendb
    self.__db = cPickle.load(fp)
EOFError

Question information

Language:
English Edit question
Status:
Solved
For:
GNU Mailman Edit question
Assignee:
No assignee Edit question
Solved by:
uebelhacker
Solved:
Last query:
Last reply:

This question was originally filed as bug #314773.

Revision history for this message
Mark Sapiro (msapiro) said :
#1

The lists/LISTNAME/request.pck file is corrupt for one of your lists. There are several ways to find out which one, but none are straighforward. If you have only a few lists, you could go to the admindb interface for each list until you find one that gives you a "bug" page.

Otherwise, you could save the following 8-line file in Mailman's bin directory as 'xxx.py'

def xxx(mlist):
    if not mlist.Locked():
        mlist.Lock()
    try:
        x = mlist.NumRequestsPending()
        print 'List %s has %d requests' % (mlist.real_name, x)
    finally:
        mlist.Unlock()

and then run

bin/withlist -a -r xxx

The list whose name is printed in a "Loading list LISTNAME (unlocked)" message just before you get the error and traceback is the one with the corrupt request.pck.

Revision history for this message
uebelhacker (sven-uebelacker) said :
#2

Thanks a lot! That worked out pretty fine. After deleting request.pck it was generated correctly by the admindb web interface.

btw: would be nice to get more than a traceback when this happens, maybe an error message with information "request.pck of mailing list x seems to be corrupted". I'm not so much into python to provide a patch for that.