[Mailman-Users] /var/mailman/cron/checkdbs

Robin Bartholomew rbartholomew at mcclatchyinteractive.com
Fri Apr 6 21:51:46 CEST 2007


Mark,

Thank you.  The added print statement narrowed the offending request.pck 
down very quickly.  I am posting the solution to the list so other 
non-python programmer can make use of this useful information.

Problem: cron/checkdbs error.

Traceback (most recent call last):
File "/var/mailman/cron/checkdbs", line 178, in ?
    main()
  File "/var/mailman/cron/checkdbs", line 109, in main
    text += '\n' + pending_requests(mlist)
  File "/var/mailman/cron/checkdbs", line 128, in pending_requests
    for id in mlist.GetSubscriptionIds():
  File "/var/mailman/Mailman/ListAdmin.py", line 140, in GetSubscriptionIds
    return self.__getmsgids(SUBSCRIPTION)
  File "/var/mailman/Mailman/ListAdmin.py", line 132, in __getmsgids
    ids = [k for k, (op, data) in self.__db.items() if op == rtype]
ValueError: unpack tuple of wrong size

Cause: corrupt request.pck file in one of the lists
Mark's Solution: Find these lines in cron/checkdbs near the beginning of 
the defininton of main()

    for name in Utils.list_names():
        # the list must be locked in order to open the requests database
        mlist = MailList.MailList(name)
        try:

and add a line to make it

    for name in Utils.list_names():
        print >> sys.stderr, 'Processing list %s' % name
        # the list must be locked in order to open the requests database
        mlist = MailList.MailList(name)
        try:

Then you can run cron/checkdbs by hand and the last 'Processing list 
<name>' that appears is the bad one. Then you can remove the added line 
and look at that lists request.pck.

Thank you again!

Robin D. Bartholomew





More information about the Mailman-Users mailing list