[Mailman-Users] What causes "decoding Unicode is not supported"?

Mark Sapiro mark at msapiro.net
Wed Sep 2 16:24:59 CEST 2009


Rosenbaum, Larry M. wrote:

>> From: Mark Sapiro [mailto:mark at msapiro.net]
>> 
>> Rosenbaum, Larry M. wrote:
>> 
>> >We are running Mailman 2.1.12 on Solaris 9 SPARC, Python 2.4.2. What
>> causes the following "decoding Unicode is not supported" error message?
>> I've looked at digest.mbox and didn't find any Unicode.
>> [...]
>> >Your "cron" job on ornl71
>> >/usr/local/bin/python -S /usr/local/mailman/cron/senddigests
>> >
>> >produced the following output:
>> >
>> >List: dcaplusplus: problem processing
>> /usr/local/mailman/lists/dcaplusplus/digest.mbox:
>> >decoding Unicode is not supported
>> 
>> 
>> I think this may be the "Mailman 2.1.12 is not compatible with python
>> 2.4.x (x>3)" issue. See the March 2009 note at the end of the FAQ at
>> <http://wiki.list.org/x/pYA9>.
>
>My original message was incorrect (I was looking at the wrong system).  The system generating the error message is running python 2.5, which is stated as one of the recommended Python versions.  What else can I check?


cp cron/senddigests cron/senddigestsx

Then edit cron/senddigestsx

Where you see (without the linewrap)

    for listname in listnames:
        mlist = MailList.MailList(listname, lock=0)
        if mlist.digest_send_periodic:
            mlist.Lock()
            try:
                try:
                    mlist.send_digest_now()
                    mlist.Save()
                # We are unable to predict what exception may occur in
digest
                # processing and we don't want to lose the other
digests, so
                # we catch everything.
                except Exception, errmsg:
                    print >> sys.stderr, \
                      'List: %s: problem processing %s:\n%s' % \
                        (listname,
                         os.path.join(mlist.fullpath(), 'digest.mbox'),
                         errmsg)
            finally:
                mlist.Unlock()


Add the two lines
                    import traceback
                    traceback.print_exc()
to make it

    for listname in listnames:
        mlist = MailList.MailList(listname, lock=0)
        if mlist.digest_send_periodic:
            mlist.Lock()
            try:
                try:
                    mlist.send_digest_now()
                    mlist.Save()
                # We are unable to predict what exception may occur in
digest
                # processing and we don't want to lose the other
digests, so
                # we catch everything.
                except Exception, errmsg:
                    print >> sys.stderr, \
                      'List: %s: problem processing %s:\n%s' % \
                        (listname,
                         os.path.join(mlist.fullpath(), 'digest.mbox'),
                         errmsg)
                    import traceback
                    traceback.print_exc()
            finally:
                mlist.Unlock()

make sure the added lines are indented exactly the same amount (20
spaces) as the 'print' above and don't use tabs. 

Then run

cron/senddigestsx -l dcaplusplus

This should produce a traceback in addition to the above message. Post
that.

-- 
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