summaryrefslogtreecommitdiff
path: root/Mailman/Queue
diff options
context:
space:
mode:
authorbwarsaw2002-10-29 20:17:04 +0000
committerbwarsaw2002-10-29 20:17:04 +0000
commit8d746b2cb9536ba0ef645ae652799dbb00a7e289 (patch)
treec54299728e051dcd244f98ca15f906be098e63b1 /Mailman/Queue
parent3b6ff8b860b46aae3119e569020d9d2f0c37894a (diff)
downloadmailman-8d746b2cb9536ba0ef645ae652799dbb00a7e289.tar.gz
mailman-8d746b2cb9536ba0ef645ae652799dbb00a7e289.tar.zst
mailman-8d746b2cb9536ba0ef645ae652799dbb00a7e289.zip
_dispose(): I think this fixes a bug we are seeing on mailman-users,
where if the list lock couldn't be obtained, we couldn't register the bounce and the message would get forwarded to the list owners. Instead, let's just requeue it and try again later. Note: untested! I'm checking this into cvs so I can test it on python.org... yes on a live system. ;/
Diffstat (limited to 'Mailman/Queue')
-rw-r--r--Mailman/Queue/BounceRunner.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/Mailman/Queue/BounceRunner.py b/Mailman/Queue/BounceRunner.py
index ddfadad76..6d86fd2ea 100644
--- a/Mailman/Queue/BounceRunner.py
+++ b/Mailman/Queue/BounceRunner.py
@@ -76,6 +76,8 @@ class BounceRunner(Runner):
# If that still didn't return us any useful addresses, then send it on
# or discard it.
if not addrs:
+ syslog('bounce', 'bounce message w/no discernable addresses: %s',
+ msg.get('message-id'))
maybe_forward(mlist, msg)
return
# BAW: It's possible that there are None's in the list of addresses,
@@ -87,7 +89,9 @@ class BounceRunner(Runner):
# then we'll register the address on every list in the system, but
# note: this could be VERY resource intensive!
foundp = 0
- if mlist.internal_name() == mm_cfg.MAILMAN_SITE_LIST:
+ listname = mlist.internal_name()
+ if listname == mm_cfg.MAILMAN_SITE_LIST:
+ foundp = 1
for listname in Utils.list_names():
xlist = self._open_list(listname)
xlist.Load()
@@ -112,8 +116,9 @@ class BounceRunner(Runner):
try:
mlist.Lock(timeout=mm_cfg.LIST_LOCK_TIMEOUT)
except LockFile.TimeOutError:
- # Oh well, forget about this bounce
- pass
+ # Try again later
+ syslog('bounce', "%s: couldn't get list lock", listname)
+ return 1
else:
try:
for addr in addrs:
@@ -127,8 +132,8 @@ class BounceRunner(Runner):
# It means an address was recognized but it wasn't an address
# that's on any mailing list at this site. BAW: don't forward
# these, but do log it.
- syslog('bounce', 'bounce message with non-members: %s',
- COMMASPACE.join(addrs))
+ syslog('bounce', 'bounce message with non-members of %s: %s',
+ listname, COMMASPACE.join(addrs))
maybe_forward(mlist, msg)