Package: galera-arbitrator-4 Version: 26.4.20-0+deb12u1 Severity: normal Tags: upstream patch X-Debbugs-Cc: bugs....@free.fr
Dear Maintainer, Setting the WORK_DIR env variable in /etc/default/garb (involving the use of garbd's not very documented -w option), in order to have a cluster tracking file on the arbitrator system prevents garbd to start, with these typical error lines: Nov 22 19:10:32 deb12-ga garb-systemd[940]: options: gcs.fc_limit=9999999; gcs.fc_factor=1.0; gcs.fc_single_primary=yes base_dir=/tmp; Nov 22 19:10:32 deb12-ga garb-systemd[940]: cfg: Nov 22 19:10:32 deb12-ga garb-systemd[940]: workdir: /tmp Nov 22 19:10:32 deb12-ga garb-systemd[940]: log: Nov 22 19:10:32 deb12-ga garb-systemd[940]: 2024-11-22 19:10:32.073 FATAL: Exception in creating receive loop: More than one value for key 'gcs.fc_single_primary' at '> Nov 22 19:10:32 deb12-ga garb-systemd[940]: at ./galerautils/src/gu_config.cpp:parse():52 Nov 22 19:10:32 deb12-ga systemd[1]: garb.service: Main process exited, code=exited, status=1/FAILURE Nov 22 19:10:32 deb12-ga systemd[1]: garb.service: Failed with result 'exit-code'. Actually garbd's C++ code builds an internal option string similar to mariadb ('s galera-4 plugin) 's wsrep_provider_options. It simply fails to add a comma separator between gcs.fc_single_primary=yes (a fixed option always set internally) and the base_dir= option. I couldn't find a workaround without recompiling galera-arbitrator-4 and adding the missing comma. Doing this makes the -w/WORK_DIR option behave as intented I believe this error has always been here but there weren't any complains about it. I initially considered reporting this upstream but didn't attempt it when I discovered this had already been reported (with a very similar fix) there more than a year ago without result: https://github.com/codership/galera/pull/641 -- System Information: Debian Release: 12.8 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 6.11.6-amd64 (SMP w/16 CPU threads; PREEMPT) Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) Versions of packages galera-arbitrator-4 depends on: ii libboost-program-options1.74.0 1.74.0+ds1-21 ii libc6 2.36-9+deb12u9 ii libgcc-s1 12.2.0-14 ii libssl3 3.0.15-1~deb12u1 ii libstdc++6 12.2.0-14 galera-arbitrator-4 recommends no packages. galera-arbitrator-4 suggests no packages. -- Configuration Files: /etc/default/garb changed: GALERA_NODES="10.0.5.11,10.0.5.12,10.0.5.13" GALERA_GROUP="mycluster" WORK_DIR="/tmp" -- no debconf information
diff --git a/garb/garb_config.cpp b/garb/garb_config.cpp index ec7650a5..e2192271 100644 --- a/garb/garb_config.cpp +++ b/garb/garb_config.cpp @@ -146,7 +146,7 @@ Config::Config (int argc, char* argv[]) options_ += "gcs.fc_limit=9999999; gcs.fc_factor=1.0; gcs.fc_single_primary=yes"; if (!workdir_.empty()) { - options_ += " base_dir=" + workdir_ + ";"; + options_ += "; base_dir=" + workdir_ + ";"; } // this block must be the very last.