
J.A. Terranson wrote:
On Sat, 30 Oct 2010, Mark Sapiro wrote:
You can try running 'strings' on the various config.pck* files to see if you can extract useful information that way.
Everything seems to be in there: I see all the settings, plus it looks like all the subscribers are there as well. It's going to be *really* painfull manually restoring all ~1200 addresses and their information, but I suppose it will have to do.
Whats really odd is that only one (of approx 30 lists) was corrupted, and when I compare the output of the corrupted vs known goos files, they look roughly identical.
Probably that one list was the only one that was being or had 'recently' been updated when the power was removed.
Clearly they aren't, but... Is there any way to tell "where" mailman thinks the corruption begins or is it just the absence of a clean flag somewhere that I am hosed on?
Mailman doesn't have a clue as to what the problem is. The file is a Python pickle and all Mailman knows is its attempt to cPickle.load() the file threw an exception or didn't return a Python dictionary.
See <http://docs.python.org/library/pickle.html>.
Also, you may be able to use some of the pickletools functions to help determine what might be wrong with the file and how to fix it, See <http://docs.python.org/library/pickletools.html>. Also, see the text at the beginning of the /usr/lib/pythonx.x/pickletools.py file for documentation of the pickle file format. Note that config.pck is a "protocol 1" pickle.
The first step would be to run the following Python commands. It is best to run them under withlist as the unpickling process may need access to Mailman.
$ /usr/mailman/bin/withlist -i (some output)
import cPickle fp = open('/usr/mailman/lists/[listname]/config.pck') xxx = cPickle.load(fp) (some output about the error) (enter control-D here to exit)
Then, depending on the error, you might be able to use pickletools or just a dump of the file to see what the problem is.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan