[Mailman-Users] Uncaught runner exception

Mark Sapiro mark at msapiro.net
Tue Mar 12 18:47:30 EDT 2019

On 3/12/19 2:37 AM, Lothar Schilling wrote:
> An example of a complete error message:
> Mar 11 17:02:22 2019 (15400) SHUNTING:
> 1552320069.504329+15fb4f71a5404fd1af3dafbe2780486d5b474cc7
> Mar 11 17:22:37 2019 (15400) Uncaught runner exception: 'ascii' codec
> can't decode byte 0xb5 in position 26: ordinal not in range(128)
> Mar 11 17:22:37 2019 (15400) Traceback (most recent call last):
>   File "/usr/lib/mailman/Mailman/Queue/Runner.py", line 119, in _oneloop
>     self._onefile(msg, msgdata)
>   File "/usr/lib/mailman/Mailman/Queue/Runner.py", line 190, in _onefile
>     keepqueued = self._dispose(mlist, msg, msgdata)
>   File "/usr/lib/mailman/Mailman/Queue/ArchRunner.py", line 77, in _dispose
>     mlist.ArchiveMail(msg)
>   File "/usr/lib/mailman/Mailman/Archiver/Archiver.py", line 216, in
> ArchiveMail
>     h.processUnixMailbox(f)
>   File "/usr/lib/mailman/Mailman/Archiver/pipermail.py", line 602, in
> processUnixMailbox
>     self.add_article(a)
>   File "/usr/lib/mailman/Mailman/Archiver/pipermail.py", line 646, in
> add_article
>     author = fixAuthor(article.decoded['author'])
>   File "/usr/lib/mailman/Mailman/Archiver/pipermail.py", line 63, in
> fixAuthor
>     while i>0 and (L[i-1][0] in lowercase or
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xb5 in position 26:
> ordinal not in range(128)

Again, this is the code trying to "Canonicalize a name into Last, First
format". The complete statement is

        while i>0 and (L[i-1][0] in lowercase or
                       L[i-1].lower() in smallNameParts):
            i = i - 1

smallNameParts is all lower case ascii, i.e.

= ['van', 'von', 'der', 'de']

and L is the list returned by

    L = author.split()

and none of the shunted .pck files you provided me have any name pieces
longer than 14 bytes and only 2 of the 5 even have any non-ascii, but
the decode error refers to byte 0xb5 in position 26 (B5 in iso-8859-1 is µ).

I know you said in your original post

> I am using Python 2.6.6 on a Centos 6 system. The output of
> /usr/lib64/python >>> import string >>> string.lowercase is
> 'abcdefghijklmnopqrstuvwxyz' (as it is supposed to be).

but see below.

> The problem is site-wide, not just for one or two lists. Anyway, there
> are no altered templates or messages for a specific list. The only files
> deviating from the default configuration are:
> Defaults.py
> mm_cfg.py
> Of course Defaults.py has
> So in mm_cfg.py I added
> add_language('en', 'English (USA)', 'iso-8859-1', 'ltr')
> But I cannot see how this would cause the problem.

Neither can I, but I tried again with those settings just to be sure,
and got no issues.

All of this leads me to conclude that the issue must be non-ascii
following the 'z' in string.lowercase.

What is the path to the Python interpreter that Mailman is using?

What do you get if in that Python you do

import string

For example, I get

>>> import string
>>> lowercase
>>> string
<module 'string' from '/usr/lib/python2.7/string.pyc'>

Mark Sapiro <mark at msapiro.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