[Mailman-Developers] Mailman 2.0.1 patch
Barry A. Warsaw
barry@digicool.com
--K1eGMMCE0X
Content-Type: text/plain; charset=us-ascii
Content-Description: message body text
Content-Transfer-Encoding: 7bit
Folks,
Here's the patch I plan to upload as 2.0 -> 2.0.1 (module Version.py
file updates). This should fix the bin/withlist buglet and the
qrunner deadlock problem. I've installed it on mail.python.org and it
seems to be working, so please give it a look. I will be checking
this into the 2.0.1 branch.
Cheers,
-Barry
--K1eGMMCE0X
Content-Type: text/plain
Content-Description: Mailman 2.0 -> 2.0.1 beta 1
Content-Disposition: inline;
filename="mm-patch-201.txt"
Content-Transfer-Encoding: 7bit
Index: Mailman/Version.py
===================================================================
RCS file: /cvsroot/mailman/mailman/Mailman/Version.py,v
retrieving revision 1.20
diff -u -r1.20 Version.py
--- Mailman/Version.py 2000/11/21 15:57:05 1.20
+++ Mailman/Version.py 2001/01/02 19:53:34
@@ -15,7 +15,7 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Mailman version
-VERSION = "2.0"
+VERSION = "2.0.1b1"
# And as a hex number in the manner of PY_VERSION_HEX
ALPHA = 0xa
@@ -27,10 +27,10 @@
MAJOR_REV = 2
MINOR_REV = 0
-MICRO_REV = 0
-REL_LEVEL = FINAL
+MICRO_REV = 1
+REL_LEVEL = BETA
# at most 15 beta releases!
-REL_SERIAL = 0
+REL_SERIAL = 1
HEX_VERSION = ((MAJOR_REV << 24) | (MINOR_REV << 16) | (MICRO_REV << 8) |
(REL_LEVEL << 4) | (REL_SERIAL << 0))
Index: admin/www/download.ht
===================================================================
RCS file: /cvsroot/mailman/mailman/admin/www/download.ht,v
retrieving revision 1.5
diff -u -r1.5 download.ht
--- admin/www/download.ht 2000/11/21 15:57:49 1.5
+++ admin/www/download.ht 2001/01/02 19:53:38
@@ -65,9 +65,9 @@
<h3>Downloading</h3>
<p>Version
-(<!-VERSION--->2.0<!-VERSION--->,
+(<!-VERSION--->2.0.1b1<!-VERSION--->,
released on
-<!-DATE--->Nov 21 2000<!-DATE--->)
+<!-DATE--->Jan 2 2001<!-DATE--->)
is the current GNU release. It is available from the following mirror sites:
<ul>
Index: bin/withlist
===================================================================
RCS file: /cvsroot/mailman/mailman/bin/withlist,v
retrieving revision 1.11
diff -u -r1.11 withlist
--- bin/withlist 2000/11/11 01:54:26 1.11
+++ bin/withlist 2001/01/02 19:53:52
@@ -159,6 +159,8 @@
except getopt.error, m:
usage(m)
+ lock = 0
+ run = None
for opt, arg in opts:
if opt in ('-h', '--help'):
usage(code=0)
@@ -171,8 +173,6 @@
usage('No list name supplied.')
listname = string.lower(args.pop(0))
- lock = 0
- run = None
# first try to open mailing list
write('Loading list:', listname, file=sys.stderr, nl=0)
Index: cron/qrunner
===================================================================
RCS file: /cvsroot/mailman/mailman/cron/qrunner,v
retrieving revision 1.18
diff -u -r1.18 qrunner
--- cron/qrunner 2000/09/18 21:28:42 1.18
+++ cron/qrunner 2001/01/02 19:53:52
@@ -78,6 +78,7 @@
import time
import marshal
import mimetools
+from stat import ST_SIZE
import paths
from Mailman import mm_cfg
@@ -191,6 +192,17 @@
msgcount = 0
allkids = {}
for file in os.listdir(mm_cfg.QUEUE_DIR):
+ # Keep the qrunner lock alive for a while longer
+ lock.refresh()
+ root, ext = os.path.splitext(os.path.join(mm_cfg.QUEUE_DIR, file))
+ if ext == '.db':
+ # If the .db file has no corresponding .msg file, we might as well
+ # remove the .db file, since there's little we can do about it.
+ if not os.path.exists(root+'.msg'):
+ syslog('qrunner', 'Unlinking orphaned .db file: %s.db' % root)
+ os.unlink(root+'.db')
+ # just trigger off the .msg files
+ continue
# Have we exceeded either resource limit?
if mm_cfg.QRUNNER_PROCESS_LIFETIME is not None and \
(time.time() - t0) > mm_cfg.QRUNNER_PROCESS_LIFETIME:
@@ -199,12 +211,6 @@
msgcount > mm_cfg.QRUNNER_MAX_MESSAGES:
break
msgcount = msgcount + 1
- # Keep the qrunner lock alive for a while longer
- lock.refresh()
- root, ext = os.path.splitext(os.path.join(mm_cfg.QUEUE_DIR, file))
- if ext <> '.msg':
- # trigger just off the .msg file
- continue
msgfp = dbfp = None
try:
dbfp = open(root + '.db')
--K1eGMMCE0X--