0

I updated Mariadb from 10.0 to 10.2, and now pure-ftpd-mysql won't restart:

service pure-ftpd-mysql restart

outputs:

Job for pure-ftpd-mysql.service failed. See 'systemctl status pure-ftpd-mysql.service' and 'journalctl -xn' for details.

systemctl

systemctl status pure-ftpd-mysql.service -l

outputs

● pure-ftpd-mysql.service - (null)
 Loaded: loaded (/etc/init.d/pure-ftpd-mysql)
 Active: failed (Result: exit-code) since Sun 2017-07-09 23:12:23 CEST; 53s ago
Process: 3887 ExecStart=/etc/init.d/pure-ftpd-mysql start (code=exited, status=127)

  Jul 09 23:12:23 s***.h****.net pure-ftpd-mysql[3887]: Starting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -E -j -D -A -H -J ALL:!aNULL:!SSLv3 -O clf:/var/log/pure-ftpd/transfer.log -b -8 UTF-8 -Y 1 -u 1000 -B
  Jul 09 23:12:23 s***.h****.net pure-ftpd-mysql[3887]: /usr/sbin/pure-ftpd-mysql-virtualchroot: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18: no version information available (required by /usr/sbin/pure-ftpd-mysql-virtualchroot)
  Jul 09 23:12:23 s***.h****.net pure-ftpd-mysql[3887]: /usr/sbin/pure-ftpd-mysql-virtualchroot: relocation error: /usr/sbin/pure-ftpd-mysql-virtualchroot: symbol my_make_scrambled_password, version libmysqlclient_18 not defined in file libmysqlclient.so.18 with link time reference
  Jul 09 23:12:23 s***.h****.net systemd[1]: pure-ftpd-mysql.service: control process exited, code=exited status=127
  Jul 09 23:12:23 s***.h****.net systemd[1]: Failed to start (null).
  Jul 09 23:12:23 s***.h****.net systemd[1]: Unit pure-ftpd-mysql.service entered failed state.

journalctl

-- Unit pure-ftpd-mysql.service has begun starting up.
Jul 09 23:15:22 s***.h****.net pure-ftpd-mysql[4170]: Starting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -
Jul 09 23:15:22 s***.h****.net pure-ftpd-mysql[4170]: /usr/sbin/pure-ftpd-mysql-virtualchroot: /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18: no version information avai
Jul 09 23:15:22 s***.h****.net pure-ftpd-mysql[4170]: /usr/sbin/pure-ftpd-mysql-virtualchroot: relocation error: /usr/sbin/pure-ftpd-mysql-virtualchroot: symbol my_make_s
Jul 09 23:15:22 s***.h****.net systemd[1]: pure-ftpd-mysql.service: control process exited, code=exited status=127
Jul 09 23:15:22 s***.h****.net systemd[1]: Failed to start (null).
-- Subject: Unit pure-ftpd-mysql.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit pure-ftpd-mysql.service has failed.
-- 
-- The result is failed.
Jul 09 23:15:22 s***.h****.net systemd[1]: Unit pure-ftpd-mysql.service entered failed state.

mariadb -v

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 17831
Server version: 10.2.6-MariaDB-10.2.6+maria~jessie-log mariadb.org binary distribution

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Reading history-file /root/.mysql_history

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

  • Have you updated mariadb-libs to latest one for MariaDB 10.2? – Alexander Tolkachev Jul 10 '17 at 3:56
  • I removed mariadb by apt-get remove mariadb-server, downloaded the deb files and did a dpkg -i *.deb, no errors so I guess everything was installed. Is there a way I can check the libs version? – spacebiker Jul 10 '17 at 8:43
  • 1
    try to execute apt list --installed and check is there libmariadbd19. – Alexander Tolkachev Jul 10 '17 at 9:06
  • 1
    Try to reinstall libmariadbclient18. – Alexander Tolkachev Jul 10 '17 at 11:05
  • 1
    so, update pureftpd. – Alexander Tolkachev Jul 10 '17 at 11:45
1

This is a definitely a known bug with the Debian pureftpd package Here's the full story: In its early days, say, about 20 years ago, libmysqlclient did not version symbols and did not limit their visibility. Some functions were documented — they were client API, and we promised to keep them stable, working over years. Other functions were not documented, they were internal, no promises. But they were exported and available too. Later, in MariaDB time, RedHat was versioning libmysqlclient symbols. Old symbols from libmysqlclient.so.16.0.0 had the version libmysqlclient_16, newer symbols had the version libmysqlclient_18. Internal symols was hidden, with few exceptions. One of such exceptions was my_make_scrambled_password, because pureftpd started using it since the old days, when everything was kind of allowed. Debian had a different, simpler (and less correct) approach to versioning, all symbols had libmysqlclient_18 version. In MariaDB we managed to create a library compatible with both approaches. my_make_scrambled_password was not hidden, with the comment "for pureftpd". The use of my_make_scrambled_password has been removed from pureftpd, but the debian version has not yet been updated, therefor, the only option by now is installing from source:

apt-get remove pure-ftpd-mysql
cd /tmp
wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.47.tar.gz
tar xzvf pure-ftpd-1.0.47.tar.gz
cd pure-ftpd-1.0.47
./configure --with-tls --with-virtualchroot --with-puredb --with-quotas --with-throttling --with-mysql
make install-strip

After this the system started to work

  • For thouse struggling with an error "libmysqlclient" not found: just "apt install libmysqlclient-dev". Everything else worked perfectly – Hirbod Jan 9 '18 at 14:42
0

Debian stretch with mariadb 10.2
must download https://packages.debian.org/stretch/amd64/libmariadb-dev/download and apt-get install libmariadb2 after dpkg -i libmariadb-devxxxxx.deb ./configure --with-tls --with-virtualchroot --with-puredb --with-quotas --with-throttling --with-mysql make install-strip

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.