[Mailman-Developers] Reconstructing config.pck

Barry A. Warsaw barry@python.org
Thu, 8 Aug 2002 14:11:22 -0400


>>>>> "LN" == Les Niles <les@2pi.org> writes:

    LN> We had a little disk glitch that trashed config.pck and
    LN> config.pck.save for one of our lists [I don't want to even
    LN> *hear* the word "backup"!]

I'm not sure what config.pck.save is -- did you mean config.pck.last?
Also, do you have a config.pck.tmp.* file laying around?  Mailman
tries really really hard not to leave you with no usable fall backs.
    
    LN> Roughly the last half of each file is nothing but null bytes.
    LN> These obviously don't unpickle very well....  Does anyone have
    LN> any experience or advice to offer about recovering some of the
    LN> information?  At a minimum I'd like to recover the subscriber
    LN> list, and hopefully the digest/no-digest settings.  I see lots
    LN> of subscribers in the file; presumably there are some objects
    LN> that are intact but the stock pickle.load() just gives up if
    LN> it can't load everything.  Any suggestions would be greatly
    LN> appreciated.

There's no easy way to do it, but it still might be doable.  The
subscribers are kept in a dictionary so you can probably extract that
information if you find the place in the pickle where the dictionary
is defined.

Here's the sad part: by default, pickles are written in binary format
so you're going to have a more fun plucking apart the pickle.  Pickles
are essentially little state machines, and the `language' is defined
in Python's pickle.py module.  UTSL is probably going to be your best
option.

Good luck,
-Barry