Mailman repetitively trying to drop addresses

We imported about 1000 addresses from an old mailing list into a new Mailman list, and we were hoping Mailman's bounce processing would start removing any addresses that are clearly no longer valid. This is old info; if we've got a bad address, we just want it dropped without any further resuscitation efforts. Here are our bounce processing settings:
bounce_processing = Yes bounce_score_threshold = 3.0 bounce_info_stale_after = 21 bounce_you_are_disabled_warnings = 0 bounce_you_are_disabled_warnings_interval = 7 bounce_unrecognized_goes_to_list_owner = Yes bounce_notify_owner_on_disable = Yes bounce_notify_owner_on_removal = Yes
These settings have been adjusted a few times, but not by any radical amount. I'm sure I also inadvertantly dropped the "bounce_score_threshold" from 3.5 to 3.0 while the latest message was still being distributed. However, the previous message exhibited the same problematic behavior I'm seeing today, and the values were all left alone during that period.
After messages went out that resulted in bounce scores over the threshold, there were a couple of issues...
- Mailman tried to send a notification to the bad addresses indicating that they've been dropped from the mailing list. It does so despite the fact that "send_goodbye_msg" is set to "no". So my first question is almost identical to this one:
http://mail.python.org/pipermail/mailman-users/2006-August/052688.html
Does anyone know how to get the bounce processing system to respect the "send_goodbye_msg" value, while still sending the moderators/list owners notification that an address has been dropped?
- Mailman tried to drop 2 addresses (out of an apparent list of 55 bad addresses) over and over again, until after 10 attempts, when the BounceRunner stopped. (Nothing at all seemed to happen to the other 53 addresses.) The first notification that the list owners received regarding the drop attempts referenced the actual message that a list member sent. But the next 10 notifications referred to the fact that the "You have been unsubscribed from the 'somelist' mailing list" messages were _also_ bouncing. (Which is another reason I'd like to suppress those messages from ever being sent in the first place.)
But back to the failure to drop the address...
There are the 11 restarts shown in the qrunner log file:
Excerpt from /var/log/mailman/qrunner:
Jun 22 14:58:16 2009 (2047) Master qrunner detected subprocess exit (pid: 2073, sig: None, sts: 1, class: BounceRunner, slice: 1/1) [restarting] Jun 22 14:58:16 2009 (4880) BounceRunner qrunner started. Jun 22 15:13:16 2009 (2047) Master qrunner detected subprocess exit (pid: 4880, sig: None, sts: 1, class: BounceRunner, slice: 1/1) [restarting] Jun 22 15:13:16 2009 (5102) BounceRunner qrunner started.
...7 more occurrences removed (each BounceRunner startup has a different PID, if that's what the number in the bracket represents)...
Jun 22 17:13:18 2009 (2047) Master qrunner detected subprocess exit (pid: 5522, sig: None, sts: 1, class: BounceRunner, slice: 1/1) [restarting] Jun 22 17:13:18 2009 (5574) BounceRunner qrunner started. Jun 22 17:28:18 2009 (2047) Master qrunner detected subprocess exit (pid: 5574, sig: None, sts: 1, class: BounceRunner, slice: 1/1) [restarting] Jun 22 17:28:18 2009 (2047) Qrunner BounceRunner reached maximum restart limit of 10, not restarting.
There appears to be more interesting information in other files in /var/log/mailman. I'll include one excerpt from the "errors" file below. If anyone thinks the other information would be handy, please let me know and I'll try to trim it down a bit before sending a copy along.
Excerpt from /var/log/mailman/error:
Jun 22 17:28:18 2009 qrunner(5574): Traceback (most recent call last): Jun 22 17:28:18 2009 qrunner(5574): File "/var/lib/mailman/bin/qrunner", line 278, in <module> Jun 22 17:28:18 2009 qrunner(5574): main() Jun 22 17:28:18 2009 qrunner(5574): File "/var/lib/mailman/bin/qrunner", line 238, in main Jun 22 17:28:18 2009 qrunner(5574): qrunner.run() Jun 22 17:28:18 2009 qrunner(5574): File "/usr/lib/mailman/Mailman/Queue/Runner.py", line 88, in run Jun 22 17:28:18 2009 qrunner(5574): self._cleanup() Jun 22 17:28:18 2009 qrunner(5574): File "/usr/lib/mailman/Mailman/Queue/BounceRunner.py", line 263, in _cleanup Jun 22 17:28:18 2009 qrunner(5574): BounceMixin._cleanup(self) Jun 22 17:28:18 2009 qrunner(5574): File "/usr/lib/mailman/Mailman/Queue/BounceRunner.py", line 137, in _cleanup Jun 22 17:28:18 2009 qrunner(5574): self._register_bounces() Jun 22 17:28:18 2009 qrunner(5574): File "/usr/lib/mailman/Mailman/Queue/BounceRunner.py", line 125, in _register_bounces Jun 22 17:28:18 2009 qrunner(5574): mlist.registerBounce(addr, msg, day=day) Jun 22 17:28:18 2009 qrunner(5574): File "/usr/lib/mailman/Mailman/Bouncer.py", line 167, in registerBounce Jun 22 17:28:18 2009 qrunner(5574): self.setBounceInfo(member, info) Jun 22 17:28:18 2009 qrunner(5574): File "/usr/lib/mailman/Mailman/OldStyleMemberships.py", line 362, in setBounceInfo Jun 22 17:28:18 2009 qrunner(5574): self.__assertIsMember(member) Jun 22 17:28:18 2009 qrunner(5574): File "/usr/lib/mailman/Mailman/OldStyleMemberships.py", line 114, in __assertIsMember Jun 22 17:28:18 2009 qrunner(5574): raise Errors.NotAMemberError, member Jun 22 17:28:18 2009 qrunner(5574): Mailman.Errors . NotAMemberError : userA@hotmail.example.com
Checking via the web interface for the list, "userA@hotmail.example.com" definitely is still a list member. Why can't Mailman drop the address? Every 15 minutes -- according to the bounce log and the messages to the list owners and moderators -- it thinks it's trying.
Has anyone seen this before?
Ralph

Ralph Prichard wrote:
You can modify the code. In the definition of the sendNextNotification() method, see
self.ApprovedDeleteMember(
member, 'disabled address',
admin_notif=self.bounce_notify_owner_on_removal,
userack=1)
and change userack=1 to userack=0 if you want no notice or to userack=None (or just remove it) to use the list's send_goodbye_msg setting.
However, what's the harm? If the address is truly undeliverable, it's just one more residual bounce. If not, the user may possibly notified of a problem.
This is a bug in Mailman 2.1.11 that is fixed in 2.1.12 (it only occurs if bounce_you_are_disabled_warnings is 0). The attached patch.txt file contains a patch to Bouncer.py that will fix it.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

Ralph Prichard wrote:
You can modify the code. In the definition of the sendNextNotification() method, see
self.ApprovedDeleteMember(
member, 'disabled address',
admin_notif=self.bounce_notify_owner_on_removal,
userack=1)
and change userack=1 to userack=0 if you want no notice or to userack=None (or just remove it) to use the list's send_goodbye_msg setting.
However, what's the harm? If the address is truly undeliverable, it's just one more residual bounce. If not, the user may possibly notified of a problem.
This is a bug in Mailman 2.1.11 that is fixed in 2.1.12 (it only occurs if bounce_you_are_disabled_warnings is 0). The attached patch.txt file contains a patch to Bouncer.py that will fix it.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
participants (2)
-
Mark Sapiro
-
Ralph Prichard