I sent this to mailman-users and now I'm sending this to you to see if anyone
has any insight into this.

Actually, I've been able to track this down to a problem in the python library
mimetools.py.  The message that causes problems has a header as such:

Content-Type: multipart/report; report-type=delivery-status
        boundary="-------=_2EF51FF1.3FFF45E0"

And if you notice, the report-type value is not terminated with a ';'
character. As a result, the value gets set to:

    "delivery-status
        boundary=...."

So when ~mailman/Mailman/Bouncers/Netscape.py  (or whatever) goes to run (in
the process routine):

   boundary = msg.getparam('boundary')

it gets back None which gets pushed onto the stack.  Later, when str is popped
off the stack python fails because it can't do a string operation on None.

If you look at the mimetools.py in the python library, and look at the
parsetype method of the Message class, you'll see that the problem is in the
assumption that each of the variable declarations in the Content-Type: header
of the mime encoded message are always terminated by a semicolon.  Just as a
test, I hand modified the message in the qfiles directory and change the above
Content-Type: header to read:

Content-Type: multipart/report; report-type=delivery-status;
        boundary="-------=_2EF51FF1.3FFF45E0"

and the message was processed.  So, what is the fix?  Occasionally, a message
will come back and end up in the qfiles directory that has the header as
described above. As a result, qrunner fails (errors out) and NONE of the email
on the system is processed.  This is a critical problem.  Could you please
help out with this?

Thanks
Kambiz

ps. Please reply directly to me, as I am not on this list. Thanks

-- 
\o__O  o    -=<  Kambiz Aghaiepour - (919)593-1964   >=-    o   o
  \_  /|\   -=<  Senior Consultant - The Collective  >=-   //\ //\
   |\  |\   -=<  mailto:[EMAIL PROTECTED]    >=-    //  //
  / /  |/   -=<  http://www.collectivetech.com/      >=-    |\  ||


We are running mailman-2.0.1 under Red Hat Linux 6.2.  Python is version
1.5.2.  For some reason that I can't figure the following message is
breaking qrunner and if ever such a message should end up in the qfiles
directory, ALL list processing comes to a stand still (why?!!).  It
would be nice if mailman would file "bad" messages that cause problems
into a different directory for future examination.  Anyhow, please
excuse the .tgz attachment (gzip compressed tar file containing a .msg
and a .db file).  Additionally, I have attached the error file from
~mailman/logs.  Something odd is going on in multipart.py and I don't
know python at all so I was hoping someone on the list can figure out
what's going on.  Maybe you can somehow reproduce the problem.  Thanks
for your attention.

Kambiz

-- 
\o__O  o   Kambiz Aghaiepour, RHCE  -    Phone: (919) 524-7423   o   o
  \_  /|\  Collective Technologies  |\|  Pager: (800) 946-4646  //\ //\
   |\  |\  -=-=-=-=-=-=-=-=-=-=-=-  | | -=-=-=-  Pin# 1412622 =- //  //
  / /  |/ mailto:[EMAIL PROTECTED]  | http://www.colltech.com  |\  ||
Feb 19 22:03:00 2001 qrunner(10243): Traceback (innermost last):
Feb 19 22:03:00 2001 qrunner(10243):   File "/usr/share/mailman/cron/qrunner", line 
283, in ?
Feb 19 22:03:00 2001 qrunner(10243):      kids = main(lock)
Feb 19 22:03:00 2001 qrunner(10243):   File "/usr/share/mailman/cron/qrunner", line 
252, in main
Feb 19 22:03:00 2001 qrunner(10243):      keepqueued = dispose_message(mlist, msg, 
msgdata)
Feb 19 22:03:00 2001 qrunner(10243):   File "/usr/share/mailman/cron/qrunner", line 
121, in dispose_message
Feb 19 22:03:00 2001 qrunner(10243):      if BouncerAPI.ScanMessages(mlist, mimemsg):
Feb 19 22:03:00 2001 qrunner(10243):   File 
"/var/mailman/Mailman/Bouncers/BouncerAPI.py", line 59, in ScanMessages
Feb 19 22:03:00 2001 qrunner(10243):      addrs = func(msg)
Feb 19 22:03:00 2001 qrunner(10243):   File 
"/var/mailman/Mailman/Bouncers/Netscape.py", line 62, in process
Feb 19 22:03:00 2001 qrunner(10243):      more = mfile.next()
Feb 19 22:03:00 2001 qrunner(10243):   File "/usr/lib/python1.5/multifile.py", line 
121, in next
Feb 19 22:03:00 2001 qrunner(10243):      while self.readline(): pass
Feb 19 22:03:00 2001 qrunner(10243):   File "/usr/lib/python1.5/multifile.py", line 
93, in readline
Feb 19 22:03:00 2001 qrunner(10243):      if marker == self.section_divider(sep):
Feb 19 22:03:00 2001 qrunner(10243):   File "/usr/lib/python1.5/multifile.py", line 
157, in section_divider
Feb 19 22:03:00 2001 qrunner(10243):      return "--" + str
Feb 19 22:03:00 2001 qrunner(10243): TypeError :  illegal argument type for built-in 
operation 
Feb 19 22:03:15 2001 qrunner(10253): Traceback (innermost last):
Feb 19 22:03:15 2001 qrunner(10253):   File "/usr/share/mailman/cron/qrunner", line 
283, in ?
Feb 19 22:03:15 2001 qrunner(10253):      kids = main(lock)
Feb 19 22:03:15 2001 qrunner(10253):   File "/usr/share/mailman/cron/qrunner", line 
252, in main
Feb 19 22:03:15 2001 qrunner(10253):      keepqueued = dispose_message(mlist, msg, 
msgdata)
Feb 19 22:03:15 2001 qrunner(10253):   File "/usr/share/mailman/cron/qrunner", line 
121, in dispose_message
Feb 19 22:03:15 2001 qrunner(10253):      if BouncerAPI.ScanMessages(mlist, mimemsg):
Feb 19 22:03:15 2001 qrunner(10253):   File 
"/var/mailman/Mailman/Bouncers/BouncerAPI.py", line 59, in ScanMessages
Feb 19 22:03:15 2001 qrunner(10253):      addrs = func(msg)
Feb 19 22:03:15 2001 qrunner(10253):   File 
"/var/mailman/Mailman/Bouncers/Netscape.py", line 62, in process
Feb 19 22:03:15 2001 qrunner(10253):      more = mfile.next()
Feb 19 22:03:15 2001 qrunner(10253):   File "/usr/lib/python1.5/multifile.py", line 
121, in next
Feb 19 22:03:15 2001 qrunner(10253):      while self.readline(): pass
Feb 19 22:03:15 2001 qrunner(10253):   File "/usr/lib/python1.5/multifile.py", line 
93, in readline
Feb 19 22:03:15 2001 qrunner(10253):      if marker == self.section_divider(sep):
Feb 19 22:03:15 2001 qrunner(10253):   File "/usr/lib/python1.5/multifile.py", line 
157, in section_divider
Feb 19 22:03:15 2001 qrunner(10253):      return "--" + str
Feb 19 22:03:15 2001 qrunner(10253): TypeError :  illegal argument type for built-in 
operation 
Feb 19 22:03:22 2001 qrunner(10256): Traceback (innermost last):
Feb 19 22:03:22 2001 qrunner(10256):   File "/usr/share/mailman/cron/qrunner", line 
283, in ?
Feb 19 22:03:22 2001 qrunner(10256):      kids = main(lock)
Feb 19 22:03:22 2001 qrunner(10256):   File "/usr/share/mailman/cron/qrunner", line 
252, in main
Feb 19 22:03:22 2001 qrunner(10256):      keepqueued = dispose_message(mlist, msg, 
msgdata)
Feb 19 22:03:22 2001 qrunner(10256):   File "/usr/share/mailman/cron/qrunner", line 
121, in dispose_message
Feb 19 22:03:22 2001 qrunner(10256):      if BouncerAPI.ScanMessages(mlist, mimemsg):
Feb 19 22:03:22 2001 qrunner(10256):   File 
"/var/mailman/Mailman/Bouncers/BouncerAPI.py", line 59, in ScanMessages
Feb 19 22:03:22 2001 qrunner(10256):      addrs = func(msg)
Feb 19 22:03:22 2001 qrunner(10256):   File 
"/var/mailman/Mailman/Bouncers/Netscape.py", line 62, in process
Feb 19 22:03:22 2001 qrunner(10256):      more = mfile.next()
Feb 19 22:03:22 2001 qrunner(10256):   File "/usr/lib/python1.5/multifile.py", line 
121, in next
Feb 19 22:03:22 2001 qrunner(10256):      while self.readline(): pass
Feb 19 22:03:22 2001 qrunner(10256):   File "/usr/lib/python1.5/multifile.py", line 
93, in readline
Feb 19 22:03:22 2001 qrunner(10256):      if marker == self.section_divider(sep):
Feb 19 22:03:22 2001 qrunner(10256):   File "/usr/lib/python1.5/multifile.py", line 
157, in section_divider
Feb 19 22:03:22 2001 qrunner(10256):      return "--" + str
Feb 19 22:03:22 2001 qrunner(10256): TypeError :  illegal argument type for built-in 
operation 

cruft.tgz



cruft.tgz

Reply via email to