Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Apr 2021 18:24:47 +0000
From:      bugzilla-noreply@freebsd.org
To:        ports-bugs@FreeBSD.org
Subject:   [Bug 255398] databases/mariadb105-server: deadlocks at start when wsrep is enabled
Message-ID:  <bug-255398-7788@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D255398

            Bug ID: 255398
           Summary: databases/mariadb105-server: deadlocks at start when
                    wsrep is enabled
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: brnrd@freebsd.org
          Reporter: prj@rootwyrm.com
          Assignee: brnrd@freebsd.org
             Flags: maintainer-feedback?(brnrd@freebsd.org)

Reproduction using 10.5.9 with from ports:

DB1:
datadir=3D/var/db/mysql
sudo -u mysql /usr/local/bin/mysql_install_db --basedir=3D/usr/local
--datadir=3D$datadir --skip-test-db
sudo -u mysql /usr/local/libexec/mariadbd --wsrep-new-cluster --wsrep-on
--wsrep_cluster_address=3Dgcomm://DB1 --datadir=3D$datadir

DB2:
datadir=3D/var/db/mysql
sudo -u mysql /usr/local/bin/mysql_install_db --basedir=3D/usr/local
--datadir=3D$datadir --skip-test-db
sudo -u mysql /usr/local/libexec/mariadbd --wsrep-on
--wsrep_cluster_address=3Dgcomm://DB1 --datadir=3D$datadir

Initial membership will succeed (check the logs, of course.) Once that's
confirmed, the cluster should be ready to go. So go kill -TERM mariadbd on =
DB2,
then DB1. (Order matters, even though it's multi-master.)

BOTH hosts /usr/local/etc/mysql/conf.d/wsrep.cnf:
[mysqld]
bind-address=3D0.0.0.0
binlog_format=3DROW
wsrep_on=3D1
wsrep_provider=3D/usr/local/lib/libgalera_smm.so
wsrep_cluster_name=3D"demo"
wsrep_cluster_address=3D"gcomm://DB1,DB2"

BOTH hosts rc.conf:
mysql_enable=3D"YES"
mysql_dbdir=3D"/var/db/mysql"

Then on DB1: /usr/local/etc/rc.d/mysql-server start
It'll go through the 15 second timeout waiting for the pidfile, and then ex=
it
1, without actually killing the process. It just never writes either the
pidfile or the socket. Ever. No errors are logged in either the mysql error=
 log
or wsrep error logs. The process just hangs and does not die to TERM.

This reproduces if manually started with "sudo -u mysql
/usr/local/libexec/mariadbd --defaults-extra-file=3D/usr/local/etc/mysql/my=
.cnf
--user=3Dmysql --datadir=3D/var/db/mysql/data --pid-file=3D/var/run/mysql/m=
ysqld.pid"
Instead of starting, it just hangs and will not respond to TERM only KILL.

Port was built with options:
databases_mariadb105-server_SET+=3DGSSAPI_HEIMDAL LZ4 WSREP
databases_mariadb105-server_UNSET+=3DGSSAPI_BASE GSSAPI_MIT GSSAPI_NONE

What is perplexing is that this ONLY reproduces with wsrep being configured=
 by
files in /usr/local/etc/mysql/conf.d. If the server is started with "--wsre=
p-on
--wsrep_cluster_address=3Dgcomm://DB1,DB2" then it works as expected. So it=
 is
specifically something with reading the wsrep configuration from files. Even
putting the wsrep configuration into my.cnf causes the exact same behavior.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-255398-7788>