[Mailman-Users] Error when sending from an unsubscribed address

Mark Sapiro msapiro at value.net
Wed Jul 11 00:14:41 CEST 2007


Simon Helson wrote:

>I'm trying to send email to a mailman list from an address that isn't
>subscribed to the list, The expected behaviour (or the configured at
>least) would be for this message to be held for moderation, however it's
>not, and I'm getting the following error. Versions: Python 2.5.1,
>Mailman is 2.1.9.

Brad Knowles wrote:

>IIRC, Python 2.5.x is too new for Mailman 2.1.9.  Try going back to 
>the most recent version of Python 2.4.x, and see what happens.


That may help, but if it does, I don't think its an incompatibility
between Python 2.5.1 and *our* 2.1.9. I *think* our 2.1.9 is
compatible with Python 2.5.1. I'm currently using Python 2.5.1 for
development/testing on the 2.1 branch.

There is definitely something wrong in the hold_for_approval function
in /opt/mailman/Mailman/Handlers/Hold.py, but I am unable to say what
since your version of this module is either patched by your site or
whoever prepared your 2.1.9 package. The line number of

    reason = Utils.wrap(exc.reason_notice())

in the traceback does not correlate with the 2.1.9 distribution.

Is there somewhere we can see the actual contents of the
/opt/mailman/Mailman/Handlers/Hold.py module that's on your system?

Does your Hold.py have the following near the beginning of
hold_for_approval?

    # XXX We use the weird type(type) construct below because in Python
2.1,
    # type is a function not a type and so can't be used as the second
    # argument in isinstance().  However, in Python 2.5, exceptions are
    # new-style classes and so are not of ClassType.
    if isinstance(exc, ClassType) or isinstance(exc, type(type)):
        # Go ahead and instantiate it now.
        exc = exc()



>Jul 10 17:11:58 2007 (28644) Uncaught runner exception: unbound method
>reason_notice() must be called with ImplicitDestination instance as
>first argument (got nothing instead)
>
>Jul 10 17:11:58 2007 (28644) Traceback (most recent call last):
>
>  File "/opt/mailman/Mailman/Queue/Runner.py", line 105, in _oneloop
>
>    self._onefile(msg, msgdata)
>
>  File "/opt/mailman/Mailman/Queue/Runner.py", line 155, in _onefile
>
>    keepqueued = self._dispose(mlist, msg, msgdata)
>
>  File "/opt/mailman/Mailman/Queue/IncomingRunner.py", line 129, in
>_dispose
>
>    status = self._dopipeline(mlist, msg, msgdata, pipeline)
>
>  File "/opt/mailman/Mailman/Queue/IncomingRunner.py", line 152, in
>_dopipeline
>
>    sys.modules[modname].process(mlist, msg, msgdata)
>
>  File "/opt/mailman/Mailman/Handlers/Hold.py", line 162, in process
>
>    hold_for_approval(mlist, msg, msgdata, ImplicitDestination)
>
>  File "/opt/mailman/Mailman/Handlers/Hold.py", line 205, in
>hold_for_approval
>
>    reason = Utils.wrap(exc.reason_notice())
>
>TypeError: unbound method reason_notice() must be called with
>ImplicitDestination instance as first argument (got nothing instead)

-- 
Mark Sapiro <msapiro at value.net>       The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan



More information about the Mailman-Users mailing list