[Pkg-mailman-hackers] Bug#891691: Bug#891691: Bug#891691: mailman3-core: Cannot install mailman3-suite with mysql database

Colin Turner ct at piglets.com
Thu Mar 1 15:19:33 UTC 2018


Hi Jonas et al.,

> Hi there,
> 
> Am 28.02.2018 um 19:29 schrieb Pierre-Elliott Bécue:
>>> I have attempted to install mailman3-suite, and allowed automatic configuration using mysql. I think this was the default presented choice.
> 
> This should not have been the case. Default choice is sqlite, second
> option is pgsql and third option is mysql.

You are correct. It must have been in the debconf settings from my first attempt when I tried again and recorded it all. A purge revealed sqlite as the first choice.

>>> So I'm guessing there is a missing dependency here. I tried installing python-mysqldb,
> 
> Indeed, you ran into a missing dependency on 'python-mysqldb'. We don't
> directly depend on it as it's an alternative DB backend. For alternative
> solutions, it's common to use alternative dependencies. So for the DB
> backends, we have the following dependencies:
> 
> dbconfig-sqlite3 | dbconfig-pgsql | dbconfig-mysql | dbconfig-no-thanks
> and
> python-psycopg2 | python3-pymysql
> 
> There's a mistake indeed as the alternative dependency for mysql should
> be 'python-mysqldb' (the python2 version, not the python3 one). This is
> fixed in the Git repo now and will be fixed with the next upload.
> 
> But still, you have to take care of installing the alternative
> depenencies yourself if you want to use a different DB backend than the
> default one.
> 

This is a very good point, and as noted above I was incorrect in my assumption about defaults.

On a tangential note this server hosts lots of PHP stuff with mysql backends, I happened to know mailman2 with Python, but I didn’t know when I installed mailman3 (the first time) that it was Python django. Hence it wasn’t obvious to me this would be an issue. However, this is really, if anything an issue for the dbconfig package perhaps.


[..]

>>> 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
>> 
>> This error is a bummer. It comes from innoDB implementations of SQL servers.
>> The main idea is that there is a limited length for the index deployment on
>> varchar fields, and one field in django-allauth/mailman is 255 chars, which
>> is more than 767 bytes (191 chars).
> 
> Yep, correct. See Debian bugreport #886756[1] and upstream bugreport
> MDEV-14904[2].
> 
> This is an ugly bug that only exists in MariaDB 10.1 due to the
> combination of default charset 'utf8mb4', old innodb_file_format and no
> inoodb_default_file_format.
> 
> This topic is already discussed in section 'MySQL database backend' in
> README.Debian (/usr/share/doc/mailman3-suite/README.Debian or [3]).

Really interesting…

> 
> I don't see an easy solution to that except fixing MDEV-14904 upstream
> (which was promised to be done) and backporting it to the mariadb-10.1
> packages in Debian.
> 
> For now, your options are:
> 
> * Switch to mariadb10.2 or mariadb10.3
> * Switch back to 'utf8' as default charset at your mariadb 10.1 instance
>  (not even sure if that is sufficient)
> * Use another DB backend

I tried sqlite after purging everything, ensuring /var/log/mailman3/ was gone and so on. But I still got the permissions problem on the logging, so I’ve filed another report. I hope helpful rather than a nuisance.

Kind regards,

CT.



More information about the Pkg-mailman-hackers mailing list