Akonadi Won't Start

Suddenly today, I cannot start Akonadictl and therefore get errors when opening kontact. I believe I did some updates yesterday, but am not sure what they were. It was through the Software Updates notification widget.

When I try to start akonadi manually I get:

:~> akonadictl start
Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
:~> org.kde.pim.akonadiserver: Failed to connect to database!
org.kde.pim.akonadiserver: Database error: “Can’t connect to local MySQL server through socket ‘/tmp/akonadi-ian.2AyhoW/mysql.socket’ (111 “Connection refused”) QMYSQL: Unable to connect”
/usr/bin/mysqladmin: connect to server at ‘localhost’ failed
error: ‘Can’t connect to local MySQL server through socket ‘/tmp/akonadi-ian.2AyhoW/mysql.socket’ (111 “Connection refused”)’
Check that mysqld is running and that the socket: ‘/tmp/akonadi-ian.2AyhoW/mysql.socket’ exists!
org.kde.pim.akonadiserver: Failed to remove runtime connection config file
org.kde.pim.akonadicontrol: Application ‘akonadiserver’ exited normally…

MySql was not running - so I started it:

systemctl status mysql
● mysql.service - MySQL server
Loaded: loaded (/usr/lib/systemd/system/mysql.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2016-12-23 13:14:55 EST; 13min ago
Process: 3126 ExecStartPost=/usr/lib/mysql/mysql-systemd-helper wait default (code=exited, status=0/SUCCESS)
Process: 3115 ExecStartPre=/usr/lib/mysql/mysql-systemd-helper upgrade default (code=exited, status=0/SUCCESS)
Process: 3107 ExecStartPre=/usr/lib/mysql/mysql-systemd-helper install default (code=exited, status=0/SUCCESS)
Main PID: 3125 (mysqld)
CGroup: /system.slice/mysql.service
└─3125 /usr/sbin/mysqld --defaults-file=/etc/my.cnf --user=mysql

The socket file does exist:
ls -la /tmp/akonadi-ian.2AyhoW/mysql.socket
srwxrwxrwx 1 ian users 0 Dec 19 10:13 /tmp/akonadi-ian.2AyhoW/mysql.socket

I’m really not sure how to troubleshoot this. Any suggestions or guidance would be very much appreciated.

You can check in

When I try to start akonadi manually I get:

:~> akonadictl start
Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
:~> org.kde.pim.akonadiserver: Failed to connect to database!
org.kde.pim.akonadiserver: Database error: “Can’t connect to local MySQL server through socket ‘/tmp/akonadi-ian.2AyhoW/mysql.socket’ (111 "Connection refused") QMYSQL: Unable to connect”
/usr/bin/mysqladmin: connect to server at ‘localhost’ failed
error: ‘Can’t connect to local MySQL server through socket ‘/tmp/akonadi-ian.2AyhoW/mysql.socket’ (111 “Connection refused”)’
Check that mysqld is running and that the socket: ‘/tmp/akonadi-ian.2AyhoW/mysql.socket’ exists!
org.kde.pim.akonadiserver: Failed to remove runtime connection config file
org.kde.pim.akonadicontrol: Application ‘akonadiserver’ exited normally…

Is that all?
Apparently mysql fails to start, but in this output there is not the slightest clue why.

MySql was not running - so I started it:

You only need that if you configured Akonadi to use an external mysql server.
By default it starts its own instance automatically.

The socket file does exist:
ls -la /tmp/akonadi-ian.2AyhoW/mysql.socket
srwxrwxrwx 1 ian users 0 Dec 19 10:13 /tmp/akonadi-ian.2AyhoW/mysql.socket

Try to delete it.
It is to be created by mysql when it starts.
Though that probably won’t help I suppose.

I’m really not sure how to troubleshoot this. Any suggestions or guidance would be very much appreciated.

Post the whole output of “akonadictl start” (if the above wasn’t everything), and/or the file ~/.local/share/akonadi/akonadiserver.error.

Try if it works on a fresh user account.

You could try to delete the mysql config ~/.config/akonadi/mysql-local.conf (Akonadi should then use the default one), the old one may be outdated and incompatible with current mysql/mariadb versions.

Yes, that was the full output when trying to start akonadi.

Thank you for the suggestion to delete the socket file.

That solved the problem and now I have email again :slight_smile:

Thank you so very much for the helpful suggestion.

You are not the only one that has this problem as of late. I also have to delete the socket file each time on one account on one computer. This is on tumbleweed for me and has only started since early December.

I’ve seen this too. Found out I had two akonadi-$USER-hash folders in /tmp. Removing the oldest of the two seems to have fixed this completely.

At least there now id a bug for this
https://bugs.kde.org/show_bug.cgi?id=374676
reported for Arch Linux.
Unfortunately, it is ‘UNCONFIRMED’.

That’s a completely different problem though.
And not even a bug in Akonadi, but rather a broken installation and/or packaging errors in Arch…

Quoting from the report:

If I try and open akonadi on cmd line I get this:
cnf-lookup: error while loading shared libraries: libboost_system.so.1.60.0: cannot open shared object file: No such file or directory

Looks like incompatible packages or some package missing (libboost_system). If I see it correctly, that’s “just” cnf-lookup here that has a problem though which is run by the shell when an entered command is not found (to give information what package you may need to install). So likely completely unrelated to the actual problem anyway.

And the crash is related to vlc:

Thread 1 (Thread 0x7f810f10af80 (LWP 11926)):
[KCrash Handler]
#6  0x00007f805a9fab94 in  () at /usr/lib/libQtGui.so.4
#7  0x00007f810f00d4fa in call_init.part () at /lib64/ld-linux-x86-64.so.2
#8  0x00007f810f00d60b in _dl_init () at /lib64/ld-linux-x86-64.so.2
#9  0x00007f810f011b38 in dl_open_worker () at /lib64/ld-linux-x86-64.so.2
#10 0x00007f810f00d3a4 in _dl_catch_error () at /lib64/ld-linux-x86-64.so.2
#11 0x00007f810f0112d9 in _dl_open () at /lib64/ld-linux-x86-64.so.2
#12 0x00007f80f68c0ee9 in  () at /usr/lib/libdl.so.2
#13 0x00007f810f00d3a4 in _dl_catch_error () at /lib64/ld-linux-x86-64.so.2
#14 0x00007f80f68c1521 in  () at /usr/lib/libdl.so.2
#15 0x00007f80f68c0f82 in dlopen () at /usr/lib/libdl.so.2
#16 0x00007f8066d84bb0 in  () at /usr/lib/libvlccore.so.8
#17 0x00007f8066d68ebb in  () at /usr/lib/libvlccore.so.8
#18 0x00007f8066d691e8 in  () at /usr/lib/libvlccore.so.8
#19 0x00007f8066d69144 in  () at /usr/lib/libvlccore.so.8
#20 0x00007f8066d696c4 in  () at /usr/lib/libvlccore.so.8
#21 0x00007f8066d69cca in  () at /usr/lib/libvlccore.so.8

That’s a well-known and long-standing issue in Arch. Their VLC is still using Qt4, and KF5 applications crash when they try to play a notification sound with the phonon-backend-vlc (because of the clash with Qt5).
This vlc crash could actually be fixed by properly set up the vlc plugin cache, i.e. running “/usr/lib64/vlc/vlc-cache-gen -f /usr/lib64/vlc/plugins” (as openSUSE’s packages do on installation, otherwise we would have the same crash with KDE4 applications :wink: ).

Both things do not affect openSUSE…

FTR, I haven’t had a problem so far here.
I only use 13.2 and 42.2 though (not Tumbleweed), but with the latest KDE/Qt5 packages from KDE:Frameworks5, KDE:Applications and KDE:Qt5 (so somewhat comparable to TW in that regard).

I did see the issue a couple of times ( not sure, but I had the impression that it only happened after a “cold start” ). Haven’t seen it though after the latest updates.

FYI, an upstream patch has been added today to openSUSE’s akonadi-server package which should prevent this problem in the future.
It checks if a stale socket file exists and deletes it before it tries to start mysql now. And the socket file will also be deleted if mysql quits/crashes for some reason.

Will still take a few days until it arrives in Tumbleweed though.

For people that are interested, that’s the upstream commit:
https://cgit.kde.org/akonadi.git/commit/?id=4c5ca9bf32e5a9d569e83f66a439c65d8939a540

Update: the mentioned patch is included in today’s new Tumbleweed snapshot (together with the update to 16.12.1).
So this problem should be a thing of the past I hope. :wink: