[Mailman-Developers] Re: [Mailman-Announce] Announcing Mailman 2.0 release candidate 2

Barry A. Warsaw barry@digicool.com
Mon, 13 Nov 2000 23:51:00 -0500 (EST)


>>>>> "GC" == Greg Connor <gconnor@nekodojo.org> writes:

    GC> Thanks for the heads-up, and thanks for a great product.

You're welcome!

    GC> I installed 2.0rc2, and I had a problem with lists that had
    GC> administrative requests pending.  I had to remove all the
    GC> pending requests before "update" would run successfully.  I
    GC> know it's probably a bit late to fix, but I wanted to let you
    GC> know...  I posted to mailman-users with details and a log of
    GC> my install.

Yup.  There's a buglet in CheckVersion() when there are pending
requests.  Some older versions used a different requests database
format, and Mailman's auto-update feature tries to repopulate using
the new database format.  This can only happen when the list is
locked, but the new update script doesn't lock the list right away (to
avoid hangs while updating).

Here's a patch to fix the problem.

-Barry

-------------------- snip snip --------------------
Index: MailList.py
===================================================================
RCS file: /cvsroot/mailman/mailman/Mailman/MailList.py,v
retrieving revision 1.187
retrieving revision 1.188
diff -u -r1.187 -r1.188
--- MailList.py	2000/11/10 17:56:55	1.187
+++ MailList.py	2000/11/14 04:44:01	1.188
@@ -913,9 +913,10 @@
 	else:
 	    self.InitVars() # Init any new variables, 
 	    self.Load(check_version = 0) # then reload the file
-            from versions import Update
-            Update(self, stored_state)
-	    self.data_version = mm_cfg.DATA_FILE_VERSION
+            if self.Locked():
+                from versions import Update
+                Update(self, stored_state)
+                self.data_version = mm_cfg.DATA_FILE_VERSION
         if self.Locked():
             self.Save()