[Mailman-Users] a corrupt pickle

Mark Sapiro msapiro at value.net
Tue Jan 9 00:36:04 CET 2007


Ken Crater wrote:
>
>Attempting to access our more important email list via the web interface
>results in the following traceback:
>
>Traceback (most recent call last):
>  File "/var/mailman/scripts/driver", line 87, in run_main
>    main()
>  File "/var/mailman/Mailman/Cgi/admin.py", line 70, in main
>    admin_overview(_('No such list %(safelistname)s'))
>  File "/var/mailman/Mailman/Cgi/admin.py", line 228, in admin_overview
>    mlist = MailList.MailList(name, lock=0)
>  File "/var/mailman/Mailman/MailList.py", line 101, in __init__
>    self.Load()
>  File "/var/mailman/Mailman/MailList.py", line 588, in Load
>    raise Errors.MMCorruptListDatabaseError, e
>MMCorruptListDatabaseError: [Errno 2] No such file or directory:
>'/var/mailman/lists/automation/config.db.last'
>
>Further troubleshooting using (attempting to use) dumpdb and check_db
>indicates that BOTH config.pck and config.pck.last (the above error message
>referring to config.db.last seems to be incorrect, since this version uses
>pickles) are experiencing EOFErrors.


The MailList Load() method tries 4 files in the order config.pck,
config.pck.last, config.db and config.db.last. It tries the config.db
files because it may be migrating data from a 2.0.x version. When none
of them work, the error message refers to the last one tried.

Note that this is why you should remove any config.db* files after
migrating to 2.1. In a situation such as this, if a config.db were
still there, it would be used with its possibly years old data.


>Actually, dumpdb and check_db in this
>version crash against these target files, but I brought the list files into
>a new version of Mailman and both files appear empty there.
>
>And, wouldn't you know it, this led us to discover that our hosting site has
>not been backing up the /var/mailman directory, so we don't have backups.


:-(


>Are there any tools or techniques for data recovery in such circumstances?


Unfortunately, not any good ones. strings may help or your text editor
method. Also, email addresses should be grouped by regular vs. digest
which may help.


>The files appear to still contain data -- in fact, I've been frantically
>using a text editor to extract the 1000 or so email addresses as a
>last-resort, but probably won't be able to capture individual settings with
>this approach.
>
>I can't imagine why both files are corrupted, but they both produce the same
>result (a compare shows that they are slightly different).


Normally, if the config.pck is corrupt, we should fall back to the
config.pck.last which should be OK. It is difficult to see how the
logic could result in both files being corrupt, but strange things
happen in a crash.

-- 
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