[Mailman-Users] Urgent newbie help - "Hit a bug" page

John Fleming john at wa9als.com
Sat Mar 3 19:32:33 CET 2007


----- Original Message ----- 
From: "Mark Sapiro" <msapiro at value.net>


> Try the following:

> and add the line '        print n' so it becomes
>
>    mlists = []
>    longest = 0
>    for n in names:
>        print n
>        mlist = MailList.MailList(n, lock=0)
>        if advertised and not mlist.advertised:
>            continue
>        if vhost and mm_cfg.VIRTUAL_HOST_OVERVIEW and \
>               vhost.find(mlist.web_page_url) == -1 and \
>               mlist.web_page_url.find(vhost) == -1:
>            continue
>        mlists.append(mlist)
>        longest = max(len(mlist.real_name), longest)
>
>
> Make sure that 'print' is indented exactly 8 spaces. Then run
> bin/my_list_lists.
>
> This should print list names one by one until it throws the exception
> and prints the traceback. The last name printed has a problem.
> Temporarily move this list aside
>
>  mv /var/lib/mailman/thislist /somewhere/outside/mailman/thislist
>
> and then run bin/my_list_lists again to see if there are any problems.
> If not, you've identified the one problem list. There is something
> wrong with this list's config.pck. There is something mysterious if
> various software says this list doesn't have an 'advertised' or
> 'real_name' attribute, yet bin/dumpdb says it does.
>
> OTOH, maybe bin/my_list_lists fails on the first list and then when you
> move that list aside, it fails on the next one and so on. This would
> incriminate the software somehow and not a list.

BINGO!  The results listed several lists without error, and then there was 
the attribute error for real_name.  The preceeding list was the mailman 
list!  So with appropriate backups, I renamed the mailman list's 
config.pck.last file to config.pck and ran mylist_lists again, and it ran 
without error, listing all of my lists!  And guess what, the list overview 
web page works as expected now!

Luke:/var/lib/mailman/bin# ./mylist_lists
<listname>
<listname>
<listname>
<listname>
mailman
Traceback (most recent call last):
  File "./mylist_lists", line 123, in ?
    main()
  File "./mylist_lists", line 103, in main
    longest = max(len(mlist.real_name), longest)
  File "/var/lib/mailman/Mailman/MailList.py", line 144, in __getattr__
    raise AttributeError, name
AttributeError: real_name
Luke:/var/lib/mailman/bin#

Do you agree that there was something VERY subtle about what was wrong with 
it?  Here's a snippet from the original config.pck:

    'preferred_language': 'en',
    'private_roster': 1,
    'real_name': 'Mailman',
    'reject_these_nonmembers': [],
    'reply_goes_to_list': 0,

The real_name -looks- OK to a text editor, no?

Here's how it looks now:

    'preferred_language': 'en',
    'private_roster': 1,
    'real_name': 'Mailman',
    'reject_these_nonmembers': [],
    'reply_goes_to_list': 0,

Running diff adds to the confusion, and it's getting difficult to explain.

If I diff the present (working) config.pck (the renamed config.pck.last 
file) and config-orig.pck (the problem file), there is NO DIFFERENCE. 
However, if I diff config-orig.pck (problem file) and config.pck.last.orig 
(the original pck.last file), there IS a difference!!  So it seems that 
simply renaming the "same" (according to diff) file fixed the problem?! 
Some very subtle binary difference not detectable in the text output from 
dumpdb??

Luke:/var/lib/mailman/lists/mailman# diff config.pck config-orig.pck
Luke:/var/lib/mailman/lists/mailman#

Luke:/var/lib/mailman/lists/mailman# diff config-orig.pck 
config.pck.last.orig
Binary files config-orig.pck and config.pck.last.orig differ

==============================================
A special THANK YOU to Mark Shapiro for his patient and detailed help on 
this problem.  Hopefully something in this thread has helped someone else 
now or in the future!  - John
==============================================



More information about the Mailman-Users mailing list