[Pkg-mailman-hackers] Bug#750525: mailman: Master qrunner detected subprocess exit while decoding utf8 character

Laurent Mazet mazet at softndesign.org
Wed Jun 4 06:07:08 UTC 2014


Package: mailman
Version: 1:2.1.16-2
Severity: important

Dear Maintainer,

Thanks to mailman an postfix, I'm running multiple mailing list for 2 virtuals domain since 3 years without any majour issues. But one mailing list fall down 2 days ago, just after upgrading to 2.1.16-1. 80% of mail are lock in the queue. Others mailing lists still work fine. I got this type of log in /var/lib/mailman/log/error

--8<--
Jun 02 11:24:49 2014 (3899) Uncaught runner exception: 'utf8' codec can't decode byte 0xe9 in position 8: invalid continuatio
Jun 02 11:24:49 2014 (3899) Traceback (most recent call last):
  File "/var/lib/mailman/Mailman/Queue/Runner.py", line 119, in _oneloop
    self._onefile(msg, msgdata)
  File "/var/lib/mailman/Mailman/Queue/Runner.py", line 190, in _onefile
    keepqueued = self._dispose(mlist, msg, msgdata)
  File "/var/lib/mailman/Mailman/Queue/IncomingRunner.py", line 130, in _dispose
    more = self._dopipeline(mlist, msg, msgdata, pipeline)
  File "/var/lib/mailman/Mailman/Queue/IncomingRunner.py", line 153, in _dopipeline
    sys.modules[modname].process(mlist, msg, msgdata)
  File "/var/lib/mailman/Mailman/Handlers/CookHeaders.py", line 223, in process
    i18ndesc = uheader(mlist, mlist.description, 'List-Id', maxlinelen=998)
  File "/var/lib/mailman/Mailman/Handlers/CookHeaders.py", line 65, in uheader
    return Header(s, charset, maxlinelen, header_name, continuation_ws)
  File "/usr/lib/python2.7/email/header.py", line 183, in __init__
    self.append(s, charset, errors)
  File "/usr/lib/python2.7/email/header.py", line 267, in append
    ustr = unicode(s, incodec, errors)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 8: invalid continuation byte

Jun 02 11:24:49 2014 (3899) SHUNTING: 1401701086.211024+3c3ed99893324dcbcacc1c719fbc0a8b3004d4bb
-->8--

Finaly I downgrad mailmain to 2.1.16-1 and the problem disappears. By the way, mails lock in the queue were finally send.

Regards,

    Laurent

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation?
   * What exactly did you do (or not do) that was effective (or
     ineffective)?
   * What was the outcome of this action?
   * What outcome did you expect instead?

*** End of the template - remove these template lines ***


-- System Information:
Debian Release: jessie/sid
  APT prefers testing
  APT policy: (500, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.14-1-amd64 (SMP w/1 CPU core)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages mailman depends on:
ii  apache2                      2.4.9-1
ii  apache2-bin [httpd]          2.4.9-1
ii  apache2-mpm-prefork [httpd]  2.4.9-1
ii  cron                         3.0pl1-124
ii  debconf [debconf-2.0]        1.5.53
ii  libc6                        2.18-7
ii  logrotate                    3.8.7-1
ii  lsb-base                     4.1+Debian12
pn  python:any                   <none>
ii  ucf                          3.0029

Versions of packages mailman recommends:
ii  postfix [mail-transport-agent]  2.11.0-1

Versions of packages mailman suggests:
ii  listadmin     2.40-4
ii  lynx          2.8.8pre5-1
ii  spamassassin  3.4.0-1

-- Configuration Files:
/etc/init.d/mailman changed:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/lib/mailman/bin/mailmanctl
PIDFILE=/var/run/mailman/mailman.pid
test -x $DAEMON || exit 0
set -e
if ! [ -d /var/run/mailman ]; then
      install -d -o list -g list /var/run/mailman
fi
if ! [ -d /var/lock/mailman ]; then
      install -d -o root -g list -m 2775 /var/lock/mailman
fi
.. /lib/lsb/init-functions
if ! [ -x /usr/bin/python ]; then
	log_warning_msg "Python interpreter not available, exiting."
	exit 0;
fi
case "$1" in
  start)
    SITE_LIST=$( sed -rne "s/^[[:space:]]*MAILMAN_SITE_LIST[[:space:]]*=[[:space:]]*(['\"])([^'\"]+)\\1/\\2/p" /etc/mailman/mm_cfg.py )
    [ -n "$SITE_LIST" ] || SITE_LIST='mailman'
    if ! /var/lib/mailman/bin/list_lists -b | grep -q "^${SITE_LIST}$"; then
        log_warning_msg "Site list for mailman missing (looking for list named '${SITE_LIST}')."
        log_warning_msg "Please create it; until then, mailman will refuse to start."
        exit 0;
    fi
    log_daemon_msg "Starting Mailman master qrunner" "mailmanctl"
    if $DAEMON -s -q start; then
        log_end_msg 0
    else
        log_end_msg 1
    fi
    ;;
  stop)
    log_daemon_msg "Stopping Mailman master qrunner" "mailmanctl"
    if $DAEMON -q stop; then
        rm -f $PIDFILE
        log_end_msg 0
    else
        log_end_msg 1
    fi
    ;;
  reload)
    log_begin_msg "Reloading Mailman master qrunner configuration"
    if $DAEMON -q restart; then
        log_end_msg 0
    else
        log_end_msg 1
    fi
  ;;
  restart|force-reload)
    PID=`cat $PIDFILE 2>/dev/null` || true
    log_daemon_msg "Restarting Mailman master qrunner" "mailmanctl"
    $DAEMON -q stop
    if test -n "$PID" && kill -0 $PID 2>/dev/null ; then
        log_action_begin_msg "Waiting"
        for cnt in `seq 1 5`; do
            sleep 1
            kill -0 $PID 2>/dev/null || break
        done;
        if kill -0 $PID 2>/dev/null ; then
            log_action_end_msg 1
        else
            log_action_end_msg 0
        fi
    fi
    if $DAEMON -q start; then
        log_end_msg 0
    else
        log_end_msg 1
    fi
    ;;
  *)
    echo "Usage: /etc/init.d/mailman {start|stop|restart|reload|force-reload}" >&2
    exit 1
    ;;
esac
exit 0


-- debconf information:
* mailman/used_languages: en fr
* mailman/default_server_language: en
* mailman/queue_files_present: continue regardless
* mailman/create_site_list:
  mailman/gate_news: false
* mailman/site_languages: fr, en



More information about the Pkg-mailman-hackers mailing list