[Pkg-mailman-hackers] Bug#891691: mailman3-core: Cannot install mailman3-suite with mysql database
Colin Turner
ct at piglets.com
Wed Feb 28 01:55:23 UTC 2018
Package: mailman3-core
Version: 3.1.1-4
Severity: normal
Dear Maintainer,
Many thanks for your work on these packages. I'm following up from bug 891553.
I have attempted to install mailman3-suite, and allowed automatic configuration using mysql. I think this was the default presented choice.
This configuration failed, with this error transcript.
Errors were encountered while processing:
mailman3-suite
E: Sub-process /usr/bin/dpkg returned an error code (1)
Setting up mailman3-suite (0+20170523-10) ...
Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
dbconfig-common: writing config to /etc/dbconfig-common/mailman3-suite.conf
mailman3suite already exists and has privileges on mailman3suite.
creating database mailman3suite: already exists.
dbconfig-common: flushing administrative password
Traceback (most recent call last):
File "/usr/bin/django-admin", line 21, in <module>
management.execute_from_command_line()
File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
utility.execute()
File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 338, in execute
django.setup()
File "/usr/lib/python2.7/dist-packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/lib/python2.7/dist-packages/django/apps/registry.py", line 108, in populate
app_config.import_models()
File "/usr/lib/python2.7/dist-packages/django/apps/config.py", line 202, in import_models
self.models_module = import_module(models_module_name)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/usr/lib/python2.7/dist-packages/hyperkitty/models/__init__.py", line 27, in <module>
from .category import ThreadCategoryg
File "/usr/lib/python2.7/dist-packages/hyperkitty/models/category.py", line 30, in <module>
class ThreadCategory(models.Model):
File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 124, in __new__
new_class.add_to_class('_meta', Options(meta, app_label))
File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 325, in add_to_class
value.contribute_to_class(cls, name)
File "/usr/lib/python2.7/dist-packages/django/db/models/options.py", line 214, in contribute_to_class
self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
File "/usr/lib/python2.7/dist-packages/django/db/__init__.py", line 33, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/usr/lib/python2.7/dist-packages/django/db/utils.py", line 211, in __getitem__
backend = load_backend(db['ENGINE'])
File "/usr/lib/python2.7/dist-packages/django/db/utils.py", line 115, in load_backend
return import_module('%s.base' % backend_name)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/usr/lib/python2.7/dist-packages/django/db/backends/mysql/base.py", line 30, in <module>
'Did you install mysqlclient or MySQL-python?' % e
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb.
Did you install mysqlclient or MySQL-python?
dpkg: error processing package mailman3-suite (--configure):
installed mailman3-suite package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
mailman3-suite
So I'm guessing there is a missing dependency here. I tried installing python-mysqldb, but this provided a different error:
Errors were encountered while processing:
mailman3-suite
E: Sub-process /usr/bin/dpkg returned an error code (1)
Setting up mailman3-suite (0+20170523-10) ...
Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
dbconfig-common: writing config to /etc/dbconfig-common/mailman3-suite.conf
mailman3suite already exists and has privileges on mailman3suite.
creating database mailman3suite: already exists.
dbconfig-common: flushing administrative password
Traceback (most recent call last):
File "/usr/bin/django-admin", line 21, in <module>
management.execute_from_command_line()
File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
utility.execute()
File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 356, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 283, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 330, in execute
output = self.handle(*args, **options)
File "/usr/lib/python2.7/dist-packages/django/core/management/commands/migrate.py", line 204, in handle
fake_initial=fake_initial,
File "/usr/lib/python2.7/dist-packages/django/db/migrations/executor.py", line 115, in migrate
state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
File "/usr/lib/python2.7/dist-packages/django/db/migrations/executor.py", line 145, in _migrate_all_forwards
state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
File "/usr/lib/python2.7/dist-packages/django/db/migrations/executor.py", line 244, in apply_migration
state = migration.apply(state, schema_editor)
File "/usr/lib/python2.7/dist-packages/django/db/migrations/migration.py", line 129, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
File "/usr/lib/python2.7/dist-packages/django/db/migrations/operations/fields.py", line 221, in database_forwards
schema_editor.alter_field(from_model, from_field, to_field)
File "/usr/lib/python2.7/dist-packages/django/db/backends/base/schema.py", line 515, in alter_field
old_db_params, new_db_params, strict)
File "/usr/lib/python2.7/dist-packages/django/db/backends/base/schema.py", line 690, in _alter_field
params,
File "/usr/lib/python2.7/dist-packages/django/db/backends/base/schema.py", line 120, in execute
cursor.execute(sql, params)
File "/usr/lib/python2.7/dist-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/usr/lib/python2.7/dist-packages/django/db/utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/usr/lib/python2.7/dist-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/usr/lib/python2.7/dist-packages/django/db/backends/mysql/base.py", line 101, in execute
return self.cursor.execute(query, args)
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 250, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
raise errorvalue
django.db.utils.OperationalError: (1071, 'Specified key was too long; max key length is 767 bytes')
dpkg: error processing package mailman3-suite (--configure):
installed mailman3-suite package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
mailman3-suite
In the meantime there are cron errors as below:
Date: Wed, 28 Feb 2018 01:30:01 +0000
From: Cron Daemon <root at piglets.org>
To: list at piglets.org
Subject: Cron <list at oldgondolin> command -v django-admin >/dev/null && django-admin runjobs minutely --pythonpath
/usr/share/mailman3-suite --settings settings
Traceback (most recent call last):
File "/usr/bin/django-admin", line 21, in <module>
management.execute_from_command_line()
File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
utility.execute()
File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 338, in execute
django.setup()
File "/usr/lib/python2.7/dist-packages/django/__init__.py", line 22, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/usr/lib/python2.7/dist-packages/django/utils/log.py", line 75, in configure_logging
logging_config_func(logging_settings)
File "/usr/lib/python2.7/logging/config.py", line 794, in dictConfig
dictConfigClass(config).configure()
File "/usr/lib/python2.7/logging/config.py", line 576, in configure
'%r: %s' % (name, e))
ValueError: Unable to configure handler 'file': [Errno 13] Permission denied: '/var/log/mailman3/mailman-suite.log'
I also ended up commenting out line 33 in /etc/init.d/mailman3-core because otherwise I got the following error:
oldgondolin:/etc/init.d# /etc/init.d/mailman3-core start
/etc/init.d/mailman3-core: line 33: .: filename argument required
.: usage: . filename [arguments]
If it's useful to split these bugs if I haven't misunderstood something, please let me know, and I will file accordingly.
Kind regards,
CT.
-- System Information:
Debian Release: buster/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable')
Architecture: i386 (i686)
Kernel: Linux 4.14.0-2-686-pae (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages mailman3-core depends on:
ii dbconfig-sqlite3 2.0.9
ii debconf [debconf-2.0] 1.5.65
ii logrotate 3.11.0-0.1
ii lsb-base 9.20170808
ii python3 3.6.4-1
ii python3-aiosmtpd 1.1-5
ii python3-alembic 0.9.7-1
ii python3-dnspython 1.15.0-1
ii python3-falcon 1.0.0-2+b2
ii python3-flufl.bounce 2.3-4
ii python3-flufl.i18n 2.0.1-1
ii python3-flufl.lock 3.2-1
ii python3-lazr.config 2.2-1
ii python3-passlib 1.7.1-1
ii python3-public 0.5-1
ii python3-pymysql 0.7.11-1
ii python3-requests 2.18.4-1
ii python3-sqlalchemy 1.1.11+ds1-1
ii python3-zope.component 4.3.0-1
ii python3-zope.configuration 4.0.3-3
ii python3-zope.event 4.2.0-1
ii python3-zope.interface 4.3.2-1+b1
ii ucf 3.0036
Versions of packages mailman3-core recommends:
ii exim4-daemon-heavy [mail-transport-agent] 4.90-3
ii lynx 2.8.9dev16-2
Versions of packages mailman3-core suggests:
ii default-mysql-server 1.0.3
pn mailman3-core-doc <none>
ii mariadb-server-10.1 [virtual-mysql-server] 1:10.1.29-6
-- Configuration Files:
/etc/init.d/mailman3-core changed:
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Mailman3 Core program"
NAME=mailman3-core
DAEMON=/usr/bin/mailman
DAEMON_ARGS="-C /etc/mailman3/mailman.cfg start"
PIDDIR=/run/mailman3
PIDFILE=${PIDDIR}/master.pid
SCRIPTNAME=/etc/init.d/$NAME
USER=list
GROUP=list
[ -x "$DAEMON" ] || exit 0
[ ! -d ${PIDDIR} ] && (mkdir -p ${PIDDIR} && chown ${USER}:${GROUP} ${PIDDIR})
. /lib/init/vars.sh
. /lib/lsb/init-functions
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --pidfile $PIDFILE --chuid ${USER}:${GROUP} --exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2
# Add code here, if necessary, that waits for the process to be ready
# to handle requests from services started subsequently which depend
# on this one. As a last resort, sleep for some time.
}
do_stop()
{
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
# Wait for children to finish too if this is a daemon that forks
# and if the daemon is only ever run from this initscript.
# If the above conditions are not satisfied then add some other code
# that waits for the process to drop all resources that could be
# needed by services started subsequently. A last resort is to
# sleep for some time.
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2
# Many daemons don't delete their pidfiles when they exit.
rm -f $PIDFILE
return "$RETVAL"
}
do_reload() {
#
# If the daemon can reload its configuration without
# restarting (for example, when it is sent a SIGHUP),
# then implement that here.
#
start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE --name $NAME
return 0
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
status)
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
;;
reload|force-reload)
log_daemon_msg "Reloading $DESC" "$NAME"
do_reload
log_end_msg $?
;;
restart)
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
echo "$SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
exit 3
;;
esac
:
-- debconf information:
mailman3-core/pgsql/authmethod-user: password
* mailman3-core/config_hyperkitty: true
mailman3-core/db/basepath:
mailman3-core/remote/newhost:
* mailman3-core/init_service_failed:
mailman3-core/internal/reconfiguring: false
mailman3-core/pgsql/admin-user: postgres
mailman3-core/passwords-do-not-match:
* mailman3-core/database-type: mysql
mailman3-core/upgrade-backup: true
mailman3-core/dbconfig-upgrade: true
mailman3-core/pgsql/manualconf:
mailman3-core/upgrade-error: abort
mailman3-core/install-error: abort
mailman3-core/internal/skip-preseed: false
mailman3-core/dbconfig-reinstall: false
mailman3-core/remote/host: localhost
* mailman3-core/mysql/admin-user: root
mailman3-core/purge: false
mailman3-core/db/app-user: mailman3 at localhost
mailman3-core/db/dbname: mailman3
mailman3-core/mysql/method: Unix socket
mailman3-core/pgsql/authmethod-admin: ident
mailman3-core/remove-error: abort
* mailman3-core/dbconfig-install: true
mailman3-core/pgsql/changeconf: false
mailman3-core/pgsql/method: TCP/IP
mailman3-core/missing-db-package-error: abort
mailman3-core/dbconfig-remove: true
mailman3-core/remote/port:
mailman3-core/pgsql/no-empty-passwords:
More information about the Pkg-mailman-hackers
mailing list