Mailman_nameerror_global_name_dumperswitchboard_is_not_defined
20 Jul 2009title: Mailman: NameError: global name 'DumperSwitchboard' is not defined date: Mon Jul 20 14:15:12 PDT 2009
I came across a problem today trying to recover a subscribers list from an old version of mailman, using a new-ish (2.1.9) version. I dug up the config.db file for the list, then ran dumpdb on it:
$ /usr/lib/mailman/bin/dumpdb -n config.db Traceback (most recent call last): File "/usr/lib/mailman/bin/dumpdb", line 159, in ? ``` msg = main() ``` File "/usr/lib/mailman/bin/dumpdb", line 126, in main ``` d = DumperSwitchboard().read(filename) ``` NameError: global name 'DumperSwitchboard' is not defined
After a bit of digging, I found this mailing list post that gave the solution:
--- bin/dumpdb 2007-06-18 08:35:57.000000000 -0700 +++ bin/dumpdb 2007-08-02 17:45:42.187500000 -0700 @@ -49,6 +49,7 @@ import sys import getopt import pprint +import marshal from cPickle import load from types import StringType @@ -121,9 +122,7 @@ ``` # Handle dbs pp = pprint.PrettyPrinter(indent=4) if filetype == 1: ``` - # BAW: this probably doesn't work if there are mixed types of .db - # files (i.e. some marshals, some bdbs). - d = DumperSwitchboard().read(filename) + d = marshal.load(open(filename)) ``` if doprint: pp.pprint(d) return d
I copied dumpdb to my home directory, patched it, then ran it like so:
PYTHONPATH=/usr/lib/mailman/bin/ ./dumpdb config.db
Bingo!
Add a comment:
Name and email required; email is not displayed.
Related Posts
QRP weekend 08 Oct 2018
Open Source Cubesat Workshop 2018 03 Oct 2018
mpd crash? try removing files in /var/lib/mpd/ 11 Aug 2018