Mysql (mariadb 10.3.22) ne se lance plus, impossible de charger libpthread.so.0

Tags: #<Tag:0x00007f78b9293518>

Bonjour,

Je viens de terminer la mise a jour de ma debian de 9 vers 10, depuis je n’arrive plus a demarer mariadb.
J’ai ce message qui m’indique qu’une librairie « libpthread.so.0 » (libc6 je pense) n’est plus la:

/usr/sbin/mysqld: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory

Mais elle est bien installé, je n’ai pour le moment pas vue d’autres soucis, seul mysql (mariadb) semble être affecté.
J’ai essayer de supprimer l’insallation de mariadb et de le reinstaller ce qui ne change rien.

Voila quelques informations sur mon installation:

root@zarniwoop:~# cat /etc/debian_version
10.3
root@zarniwoop:~# 
root@zarniwoop:~# uname -r
4.19.0-8-amd64
root@zarniwoop:~# 
root@zarniwoop:~# service mysql start
Job for mariadb.service failed because the control process exited with error code.
See "systemctl status mariadb.service" and "journalctl -xe" for details.
root@zarniwoop:~# 
root@zarniwoop:~# systemctl status mariadb.service
● mariadb.service - MariaDB 10.3.22 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2020-04-15 09:41:26 CEST; 6s ago
     Docs: man:mysqld(8)
       https ://mariadb.com/kb/en/library/systemd/
  Process: 13939 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
  Process: 13940 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 13942 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
  Process: 14012 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=127)
 Main PID: 14012 (code=exited, status=127)

Apr 15 09:41:25 zarniwoop systemd[1]: Starting MariaDB 10.3.22 database server...
Apr 15 09:41:26 zarniwoop mysqld[14012]: /usr/sbin/mysqld: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
Apr 15 09:41:26 zarniwoop systemd[1]: mariadb.service: Main process exited, code=exited, status=127/n/a
Apr 15 09:41:26 zarniwoop systemd[1]: mariadb.service: Failed with result 'exit-code'.
Apr 15 09:41:26 zarniwoop systemd[1]: Failed to start MariaDB 10.3.22 database server.
root@zarniwoop:~# 
root@zarniwoop:~# ldd /usr/sbin/mysqld
	linux-vdso.so.1 (0x00007ffc1fff8000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe7c4c3c000)
	liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007fe7c4c1d000)
	libsnappy.so.1 => /usr/lib/x86_64-linux-gnu/libsnappy.so.1 (0x00007fe7c4a15000)
	libaio.so.1 => /usr/lib/x86_64-linux-gnu/libaio.so.1 (0x00007fe7c4a10000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fe7c47f2000)
	libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fe7c4580000)
	libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fe7c4544000)
	libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007fe7c44a3000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe7c449e000)
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fe7c431a000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe7c4197000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe7c3fd6000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fe7c68bc000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fe7c3fba000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fe7c3fb0000)
	liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fe7c3f88000)
	libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007fe7c3e6a000)
	libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007fe7c3e47000)
root@zarniwoop:~# 
root@zarniwoop:~# ls -ila /lib/x86_64-linux-gnu/libpthread.so.0
3586 lrwxrwxrwx 1 root root 18 May  1  2019 /lib/x86_64-linux-gnu/libpthread.so.0 -> libpthread-2.28.so
root@zarniwoop:~# 
root@zarniwoop:~# ls -ila /lib/x86_64-linux-gnu/libpthread-2.28.so
1265 -rwxr-xr-x 1 root root 146968 May  1  2019 /lib/x86_64-linux-gnu/libpthread-2.28.so
root@zarniwoop:~# 
root@zarniwoop:~# apt policy mariadb-server
mariadb-server:
  Installed: 1:10.3.22-0+deb10u1
  Candidate: 1:10.3.22-0+deb10u1
  Version table:
 *** 1:10.3.22-0+deb10u1 500
        500 http://deb.debian.org/debian buster/main amd64 Packages
        100 /var/lib/dpkg/status
root@zarniwoop:~# 
root@zarniwoop:~# apt policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 http://deb.debian.org/debian buster-updates/main amd64 Packages
 release o=Debian,a=stable-updates,n=buster-updates,l=Debian,c=main,b=amd64
 origin deb.debian.org
 500 http://deb.debian.org/debian-security buster/updates/non-free amd64 Packages
 release v=10,o=Debian,a=stable,n=buster,l=Debian-Security,c=non-free,b=amd64
 origin deb.debian.org
 500 http://deb.debian.org/debian-security buster/updates/main amd64 Packages
 release v=10,o=Debian,a=stable,n=buster,l=Debian-Security,c=main,b=amd64
 origin deb.debian.org
 500 http://deb.debian.org/debian buster/non-free amd64 Packages
 release v=10.3,o=Debian,a=stable,n=buster,l=Debian,c=non-free,b=amd64
 origin deb.debian.org
 500 http://deb.debian.org/debian buster/contrib amd64 Packages
 release v=10.3,o=Debian,a=stable,n=buster,l=Debian,c=contrib,b=amd64
 origin deb.debian.org
 500 http://deb.debian.org/debian buster/main amd64 Packages
 release v=10.3,o=Debian,a=stable,n=buster,l=Debian,c=main,b=amd64
 origin deb.debian.org
Pinned packages:

Merci pour votre aide.

Bonjour @Niarky

Et si on cherche de quel paquet provient /lib/x86_64-linux-gnu/libpthread-2.28.so ?

dpkg -S /lib/x86_64-linux-gnu/libpthread-2.28.so

J’ai comme réponse :

root@n40l:~# dpkg -S /lib/x86_64-linux-gnu/libpthread-2.28.so
libc6:amd64: /lib/x86_64-linux-gnu/libpthread-2.28.so
root@n40l:~# 
root@n40l:~# apt policy libc6:amd64
libc6:
  Installé : 2.28-10
  Candidat : 2.28-10
 Table de version :
 *** 2.28-10 800
        800 http://ftp2.fr.debian.org/debian buster/main amd64 Packages
        100 /var/lib/dpkg/status
root@n40l:~#

Ça n’avance pas à grand chose.

Il faudrait relancer le service, puis :

sudo dmesg | tail -n 30

ou

sudo journalctl -k | tail -n 30

Il est possible qu’il y ait des soucis avec apparmor


Liens trouvés, plus ou moins en relation (je n'ai pas tout lu) :

https://chrisjean.com/mysql-error-1018-unable-to-follow-symlink-in-ubuntu/

https://mariadb.com/kb/en/the-community-mariadb-troubles-only-running-after-reboot-times-out-when-try/

Bonjour,

Il faut vérifier si ce n’est pas un problème avec apparmor. Que donne :

cat /etc/apparmor.d/usr.bin.mysqld

Merci,
J’ai la même chose, et en effet je n’ai pas vue de lien entre les 2 pour le moment.

root@zarniwoop:~# cat /etc/apparmor.d/usr.bin.mysqld
cat: /etc/apparmor.d/usr.bin.mysqld: No such file or directory
root@zarniwoop:~# dpkg -S /lib/x86_64-linux-gnu/libpthread-2.28.so
libc6:amd64: /lib/x86_64-linux-gnu/libpthread-2.28.so
root@zarniwoop:~# apt policy libc6:amd64
libc6:
  Installed: 2.28-10
  Candidate: 2.28-10
  Version table:
 *** 2.28-10 500
        500 http://deb.debian.org/debian buster/main amd64 Packages
        100 /var/lib/dpkg/status
root@zarniwoop:~# 

Hello,

Merci je vais regarder les liens et peut etre plus du coté d’apparmor que je ne connais pas trop
Je n’ai pas de conf pour mysql :

root@zarniwoop:~# cat /etc/apparmor.d/usr.bin.mysqld
cat: /etc/apparmor.d/usr.bin.mysqld: No such file or directory
root@zarniwoop:~# 

Hello,

dmesg en debian 10 :slight_smile: je voudrais bien mais avec systemd… bref pas de troll

Je vais regarder la piste d’apparmor comme je le dis je ne connais pas trop et je vais regarder tes liens.
Au premier abord je ne pensais pas a un soucis de droits vue le message d’erreur mais c’est peut être une erreur de ma part.

Au temps pour moi j’ai fait une fauite de frappe dans le nom du fichier, c’est :

cat /etc/apparmor.d/usr.sbin.mysqld

ha oui, je suis allez trop vite aussi :wink:
Il est « vide » de conf, juste l’aide (est ce que du coup il est bien disable comme indiqué)

root@zarniwoop:~# cat /etc/apparmor.d/usr.sbin.mysqld
# This file is intensionally empty to disable apparmor by default for newer
# versions of MariaDB, while providing seamless upgrade from older versions
# and from mysql, where apparmor is used.
#
# By default, we do not want to have any apparmor profile for the MariaDB
# server. It does not provide much useful functionality/security, and causes
# several problems for users who often are not even aware that apparmor
# exists and runs on their system.
#
# Users can modify and maintain their own profile, and in this case it will
# be used.
#
# When upgrading from previous version, users who modified the profile
# will be promptet to keep or discard it, while for default installs
# we will automatically disable the profile.
root@zarniwoop:~# 

on dirait que non:

root@zarniwoop:~# aa-status
apparmor module is loaded.
17 profiles are loaded.
17 profiles are in enforce mode.
...
   /usr/sbin/mysqld
root@zarniwoop:~# 

Ok le fichier est vide. C’est normal et c’est ce qu’il faut :wink:
Le problème ne vient donc a priori pas de apparmor.
Est-ce que tu as une configuration mariadb particulière, ou utilises-tu la configuration par défaut ?
Sinon à tout hasard, en tant que root :
ldconfig -v
et redmérrage de mariadb :
systemctl restart mariadb

Hello,

C’est bien en tous cas dans un premier temps apparmor qui … bon n’est pas configuré correctement par le fournisseur de package

dans les logs (systemd…)
Apr 15 12:38:04 zarniwoop kernel: audit: type=1400 audit(1586947084.581:726): apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" name="/root/.my.cnf" pid=26386 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=0 ouid=0

avec bien d’autres.
Pour le moment le fichier vide ne fait pas que apparmor est disable pour mysql.
J’ai mis ca apres quelques tests:

/usr/sbin/mysqld {

  capability dac_override,
  capability sys_resource,
  capability setgid,
  capability setuid,

  network tcp,

  /etc/hosts.allow r,
  /etc/hosts.deny r,

  /etc/mysql/*.pem r,
  /etc/mysql/conf.d/ r,
  /etc/mysql/conf.d/* r,
  /etc/mysql/my.cnf r,
  /etc/mysql/* r,
  /etc/mysql/mariadb.conf.d/* r,
  /etc/ld.so.cache r,
  /usr/sbin/mysqld mr,
  /usr/share/mysql/** r,
  /var/log/mysql.log rw,
  /var/log/mysql.err rw,
  /var/lib/mysql/ rwm,
  /var/lib/mysql/** rwk,
  /var/log/mysql/ r,
  /var/log/mysql/* rw,
  /var/run/mysqld/mysqld.pid w,
  /var/run/mysqld/mysqld.sock w,
  /lib/* r,
  /lib/x86_64-linux-gnu/* rm,
  /usr/lib/x86_64-linux-gnu/* rm,
  /usr/share/zoneinfo/Europe/Paris r,
  /sys/devices/system/cpu/online r,
  /proc/stat r,
  /proc/cpuinfo r,
  /tmp/* rwm,

  /sys/devices/system/cpu/ r,
}

Il me reste un autre soucis soit lié a InnoDB ou une migration, je pense que la mise a jour Debian 9-> 10 est encore compliqué.
Merci pour votre aide en tous cas, maintenant je pense que c’est autre chose:

Apr 15 13:18:58 zarniwoop systemd[1]: Starting MariaDB 10.3.22 database server...
Apr 15 13:18:59 zarniwoop mysqld[15415]: 2020-04-15 13:18:59 0 [Note] Using unique option prefix 'key_buffer' is error-prone and can break in the future. Please use the full name 'key_buffer_size' instead.
Apr 15 13:18:59 zarniwoop mysqld[15415]: 2020-04-15 13:18:59 0 [Note] /usr/sbin/mysqld (mysqld 10.3.22-MariaDB-0+deb10u1) starting as process 15415 ...
Apr 15 13:18:59 zarniwoop mysqld[15415]: 2020-04-15 13:18:59 0 [Warning] Can't create test file /var/lib/mysql/zarniwoop.lower-test
Apr 15 13:18:59 zarniwoop mysqld[15415]: [90B blob data]
Apr 15 13:18:59 zarniwoop mysqld[15415]: 2020-04-15 13:18:59 0 [ERROR] Aborting
Apr 15 13:18:59 zarniwoop systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
Apr 15 13:18:59 zarniwoop systemd[1]: mariadb.service: Failed with result 'exit-code'.
Apr 15 13:18:59 zarniwoop systemd[1]: Failed to start MariaDB 10.3.22 database server.

Hello Bruno,

Merci comme je l’ai mis il y a bien un soucis avec apparmor même si le fichier est vide.
C’est une configuration quasi de base, il me reste un soucis avec InnoDB…
une migration non voulus et étrange. Pas de changement de conf entre debian 9 et 10 et je pense que mariadb était déjà en v3.10

2020-04-15 13:26:16 0 [ERROR] InnoDB: Could not open or create the system tablespace. If you tried to add new data files to the system tablespace, and it failed here, you should now edit innodb_data_file_path in my.cnf back to what it was, and remove the new ibdata files InnoDB created in this failed attempt. InnoDB only wrote those files full of zeros, but did not yet use them in any way. But be careful: do not remove old data files which contain your precious data!
2020-04-15 13:26:16 0 [ERROR] InnoDB: Plugin initialization aborted with error Cannot open a file
2020-04-15 13:26:16 0 [Note] InnoDB: Starting shutdown...
2020-04-15 13:26:17 0 [ERROR] Plugin 'InnoDB' init function returned error.
2020-04-15 13:26:17 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2020-04-15 13:26:17 0 [Note] Plugin 'FEEDBACK' is disabled.
2020-04-15 13:26:17 0 [ERROR] Could not open mysql.plugin table. Some plugins may be not loaded
2020-04-15 13:26:17 0 [ERROR] Unknown/unsupported storage engine: InnoDB
2020-04-15 13:26:17 0 [ERROR] Aborting

https://mariadb.com/kb/en/the-community-mariadb-troubles-only-running-after-reboot-times-out-when-try/

… For the record, we do not provide an Apparmor profile (it is commented).

Here is an explication why:
https://salsa.debian.org/mariadb-team/mariadb-10.1/blob/stretch/debian/apparmor-profile

… Par défaut, nous ne voulons pas avoir de profil d’apparmor pour le serveur MariaDB. Il n’offre pas beaucoup de fonctionnalités/sécurité utiles, et pose plusieurs problèmes aux utilisateurs qui souvent ne sont même pas conscients de l’existence de l’apparmor et de son fonctionnement sur leur système.

Les utilisateurs peuvent modifier et maintenir leur propre profil, et dans ce cas il sera utilisé.

A first solution is to disable only the problematic Apparmor profile :

sudo ln -siv /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld

Verify :

sudo aa-status

Finalize mariadb-server upgrade :

sudo dpkg --configure mariadb-server

Another solution could be to disable momentarily Apparmor during the upgrade …

1 J'aime

Merci,

C’est ce que je venais de faire de base il semble que le lien ne soit pas dans disable et que apparmor ne soit desactivé.
Merci

pour ce qui est de la configuration de mariadb j’ai encore quelques soucis mais l’installation est faite.
Je n’arrive plus a le demarer avec les scriptes debian, a la main en il se lance bien. Je vais continuer.

Je t’en prie, ce n’est que peu de chose. J’espère que la situation va se rétablir complètement.

Il y a aussi /usr/sbin/dpkg-reconfigure
Mais je ne connais pas assez bien Debian…

Donne donc les commandes que tu essaies ainsi que les messages et erreurs en sortie.
Regarde aussi :

sudo journalctl -u mariadb

Merci encore,

Bon enfin j’ai compris (je ne suis pas un fan de systemd… bref)
la configuration par défaut de systemd et d’interdire l’accès a /home or j’ai déplacé les fichiers de mysql dans /home/mysql …

Donc pour info il faut éditer
/etc/systemd/system/mysqld.service
et changer
ProtectHome=True
par
ProtectHome=false

Et la ça fonctionne a nouveau donc 2 problèmes en 1 pour moi.
Encore merci pour votre aide et votre support :wink:

1 J'aime