DevHeads.net

Upgrade path from MySQL to MariaDB broken? (Akonadi)

Hi!

I'm trying to install Nextcloud. I'm following the instructions in the
Nextcloud 12 Server Administration Manual, Installation on Linux:
<a href="https://docs.nextcloud.com/server/12/admin_manual/installation/" title="https://docs.nextcloud.com/server/12/admin_manual/installation/">https://docs.nextcloud.com/server/12/admin_manual/installation/</a>
source_installation.html#installation-on-linux

According to these instructions, mariadb-server needs to be installed. This
seems to work:

~ % LANG=C apt-get install mariadb-server
...
The following additional packages will be installed:
mariadb-client-10.0 mariadb-client-core-10.0 mariadb-server-10.0 mariadb-
server-core-10.0
Suggested packages:
mariadb-test tinyca
The following packages will be REMOVED:
mysql-client-core-5.7 mysql-server-core-5.7
The following NEW packages will be installed:
mariadb-client-10.0 mariadb-client-core-10.0 mariadb-server mariadb-
server-10.0 mariadb-server-core-10.0
...

There is also this, twice:

...
dpkg: mysql-client-core-5.7: dependency problems, but removing anyway as you
requested:
akonadi-backend-mysql depends on mysql-client-core-5.7 | virtual-mysql-
client-core; however:
Package mysql-client-core-5.7 is to be removed.
Package virtual-mysql-client-core is not installed.
Package mysql-client-core-5.7 which provides virtual-mysql-client-core is to
be removed.
akonadi-backend-mysql depends on mysql-client-core-5.7 | virtual-mysql-
client-core; however:
Package mysql-client-core-5.7 is to be removed.
Package virtual-mysql-client-core is not installed.
Package mysql-client-core-5.7 which provides virtual-mysql-client-core is to
be removed.
...

This looks like an error, but it's okay. The missing dependency of akonadi-
backend-mysql is fulfilled later, when mariadb-server is installed.
mariadb-server depends on mariadb-server-10.0, and mariadb-server-10.0
provides virtual-mysql-server:

...
Selecting previously unselected package mariadb-server.
Preparing to unpack .../mariadb-server_10.0.31-0ubuntu0.16.04.2_all.deb ...
Unpacking mariadb-server (10.0.31-0ubuntu0.16.04.2) ...
...
Setting up mariadb-client-core-10.0 (10.0.31-0ubuntu0.16.04.2) ...

But, afterwards, Akonadi won't start any longer! It says:

desktop ~ $ akonadictl stop
desktop ~ $ akonadictl start
Starting Akonadi Server...
done.
Connecting to deprecated signal
QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
desktop ~ $ akonadiprivate_log: search paths: ("/root/bin", "/home/v/bin", "/
sbin", "/usr/sbin", "/bin", "/usr/bin", "/usr/local/bin", "/usr/local/sbin",
"/usr/bin/X11", "/usr/local/opt/kde/kdesrc-build", "/usr/sbin", "/usr/local/
sbin", "/usr/local/libexec", "/usr/libexec", "/opt/mysql/libexec", "/opt/
local/lib/mysql5/bin", "/opt/mysql/sbin")
Found mysql_install_db: "/usr/bin/mysql_install_db"
Found mysqlcheck: "/usr/bin/mysqlcheck"
Using mysqld: "/usr/sbin/mysqld-akonadi"
mysqld reports version 10.0.31 (MariaDB)
Executing: "/usr/sbin/mysqld-akonadi" "--defaults-file=/home/v/.local/share/
akonadi/mysql.conf --datadir=/home/v/.local/share/akonadi/db_data/ --socket=/
tmp/akonadi-v.FJ0ric/mysql.socket"
Database process exited unexpectedly during initial connection!
executable: "/usr/sbin/mysqld-akonadi"
arguments: ("--defaults-file=/home/v/.local/share/akonadi/mysql.conf", "--
datadir=/home/v/.local/share/akonadi/db_data/", "--socket=/tmp/akonadi-
v.FJ0ric/mysql.socket")
stdout: ""
stderr: "170810 19:37:32 [Note] /usr/sbin/mysqld (mysqld 10.0.31-
MariaDB-0ubuntu0.16.04.2) starting as process 6971 ...\n"
exit code: 1
process error: "Unknown error"
terminating service threads
terminating connection threads
stopping db process
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/akonadi-
v.FJ0ric/mysql.socket' (2 "No such file or directory")'
Check that mysqld is running and that the socket: '/tmp/akonadi-v.FJ0ric/
mysql.socket' exists!
Failed to remove Unix socket
Failed to remove runtime connection config file
Application 'akonadiserver' exited normally...

desktop ~ $ akonadictl status
Akonadi Control: stopped
Akonadi Server: stopped
akonadiprivate_log: search paths: ("lib/x86_64-linux-gnu", "lib/x86_64-linux-
gnu/qt5/plugins/", "lib/x86_64-linux-gnu/kf5/", "lib/x86_64-linux-gnu/kf5/
plugins/", "/usr/lib/qt5/plugins/", "/usr/lib/x86_64-linux-gnu/qt5/plugins",
"/usr/bin")
Akonadi Server Search Support: available (Remote Search)
Available Agent Types: (...)

When I fall back to mysql, and install mysql-client-core-5.7 and mysql-server-
core-5.7 again, then Akonadi (and KMail and what else is using it) works
again.

The problem does not go away when you shut down akonadi before installing
mariadb-server. Neither does logging out and in again help.

This looks like a packaging problem to me. Should I file a bug report? Can this
be made work?

Thanks,
Volker