* FreeBSD Port sysutils/bacula-client and "killall" in pkg-plist.client * Upgrading bacula-client on a jail server running jails with other bacula-client processes ("bacula-fd") kills all bacula-cient processes. They do not get restartet afer upgrading.. $cat /usr/ports/sysutils/bacula-server/pkg-plist.client lib/libbac.la lib/libbac.so lib/libbac.so.%%MAJOR%% lib/libbaccfg.la lib/libbaccfg.so lib/libbaccfg.so.%%MAJOR%% lib/libbacfind.la lib/libbacfind.so lib/libbacfind.so.%%MAJOR%% lib/libbacpy.la lib/libbacpy.so lib/libbacpy.so.%%MAJOR%% lib/bpipe-fd.so sbin/bacula-fd sbin/bconsole @unexec /usr/bin/killall bacula-fd > /dev/null 2>&1 || true @exec mkdir -p %%BACULA_DIR%% @dirrmtry %%BACULA_DIR%% @dirrmtry share/bacula Here you are using "@unexec /usr/bin/killall bacula-fd > /dev/null 2>&1 || true" I maintain some multijail-servers hosting about 50 jails per server and I have bacula-client running on the jail-host itself and also inside on a great part of the jails (because this makes it easier for me to relocate jails to different jail-hosts and not having to worry that they are actually being backepd up, also because bacula-server becomes unusable slow when restoring to a bacula-client hosting millions of files or many jails - I guess database limitations.) If I do a pkg upgrade of bacula-client on the jail-host, "killall" is killing all running bacula-fd processes on the jailhost, also the bacula-fd processes inside all of the jails. Fix: I propose the following patch for pkg-plist.client: This of course makes the assumption that there is bacula-fd .pid file in /var/run Looking at /usr/local/etc/bacula-fd.conf.sample I assume it is the common case that users have "Pid Directory = /var/run" confuigured into bacula-fd.conf The more universal solution would be to come up with a short script that a) uses pkill for killing purposes b) checks if it is running inside or outside a jail (sysctl) c) makes sure pkill only shoots down the wanted bacula-fd process inside (jailed) or outside (host). Besides: Why not use the bacula rc script in /usr/local/etc/rc.d/ for stopping/starting bacula-client? I think this could be achieved by using "@stopdaemon bacula-fd" in pkg-plist.client I'd favour a solution where portupgrade stops bacula-fd by using the rc script, upgrades the port and then starts bacula-fd (also by rc script).--jLe9faT1604tANq5bnSFjZDW8DgxS3i8NmF3f7rfnLyf0eSp Content-Type: text/plain; name="file.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="file.diff" --- pkg-plist.client 2012-12-16 17:32:45.000000000 +0100 +++ pkg-plist.client.patched 2013-07-08 11:25:05.092088611 +0200 @@ -13,7 +13,7 @@ lib/bpipe-fd.so sbin/bacula-fd sbin/bconsole -@unexec /usr/bin/killall bacula-fd > /dev/null 2>&1 || true +@unexec kill `cat /var/run/bacula-fd*.pid` > /dev/null 2>&1 || true @exec mkdir -p %%BACULA_DIR%% @dirrmtry %%BACULA_DIR%% @dirrmtry share/bacula How-To-Repeat: Upgrade bacula-client on a jail-host running bacula-client inside hosted jails.
Maintainer of sysutils/bacula-client, Please note that PR ports/181160 has just been submitted. If it contains a patch for an upgrade, an enhancement or a bug fix you agree on, reply to this email stating that you approve the patch and a committer will take care of it. The full text of the PR can be found at: http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/181160 -- Edwin Groothuis via the GNATS Auto Assign Tool edwin@FreeBSD.org
State Changed From-To: open->feedback Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
Thank you for submitting this patch. I encountered the same problem earlier this month, and started a = discussion on the Bacula users mailing list: http://marc.info/?l=3Dbacula-users&m=3D137520816500564&w=3D4 What do you think of removing the kill entirely?
I've reworked my proposed patch for sysutils/bacula-client amd also did = a patch for sysutils/bacula-server Daemons are now stopped by using "@stopdaemon" - so "kill" is not needed = any more.. After doing a portupgrade the bacula daemons have to be restarted = manually. This is an approach many freebsd ports chose to take. K. --- sysutils/bacula-server/pkg-plist.client 2012-12-16 = 17:32:45.000000000 +0100 +++ sysutils/bacula-server/pkg-plist.client.patched 2013-07-08 = 11:25:05.092088611 +0200 @@ -13,7 +13,7 @@ lib/bpipe-fd.so sbin/bacula-fd sbin/bconsole -@unexec /usr/bin/killall bacula-fd > /dev/null 2>&1 || true @stopdaemon bacula-fd @exec mkdir -p %%BACULA_DIR%% @dirrmtry %%BACULA_DIR%% @dirrmtry share/bacula For sysutils/bacula-server I propose the following patch for pkg-plist: --- sysutils/bacula-server/pkg-plist 2012-12-16 17:32:45.000000000 = +0100 +++ sysutils/bacula-server/pkg-plist.patched 2013-08-14 = 17:37:48.830595374 +0200 @@ -51,7 +51,7 @@ %%DATADIR%%/update_bacula_tables %%DATADIR%%/update_%%DBTYPE%%_tables @dirrm %%DATADIR%% -@unexec /usr/bin/killall bacula-sd > /dev/null 2>&1 || true -@unexec /usr/bin/killall bacula-dir > /dev/null 2>&1 || true +@stopdaemon bacula-sd +@stopdaemon bacula-dir @exec mkdir -p %%BACULA_DIR%% @dirrmtry %%BACULA_DIR%%
Maintainer approves the patch which removes stopping of daemons. :) -- Dan Langille - http://langille.org
State Changed From-To: feedback->open Maintainer approved.
Responsible Changed From-To: freebsd-ports-bugs->rm I will take it.
Ping
Hi, I'm seeing this while building with poudriere: ===> Registering installation for bacula-server-5.2.12_4 pkg-static: fopen(/usr/ports/Keywords/stopdaemon.yaml): No such file or directory pkg-static: unknown keyword stopdaemon, ignoring @stopdaemon pkg-static: fopen(/usr/ports/Keywords/stopdaemon.yaml): No such file or directory pkg-static: unknown keyword stopdaemon, ignoring @stopdaemon pkg-static: duplicate directory listing: /usr/local/etc/bacula/, ignoring Installing bacula-server-5.2.12_4... done So it seems like this isn't working. Should we do something with that? Here is the full log for example: https://redports.org/~rm/20131127094121-40832-161357/bacula-server-5.2.12_4.log -- Regards, Ruslan T.O.S. Of Reality
State Changed From-To: open->feedback Awaiting maintainer's feedback.
This bug will be fixed by #91311
*** This bug has been marked as a duplicate of bug 91311 ***