Closed az143 closed 8 months ago
Hmm, service/B/ready shouldn't be cleared on reload(flux). I'll have to get back to you on that one.
The reason for C and D not being restarted is that you have declared them as supporting SIGHUP. The special character !
at the beginning of <>
is a declaration a service does not support SIGHUP and will thus be stop/started instead, which I assume is what you expected here.
On Sun, 29 Oct 2023 10:15:09 -0700, Joachim Wiberg writes:
Hmm, service/B/ready shouldn't be cleared on reload(flux). I'll have to get back to you on that one.
anything that i can do to help with this?
-- Alexander Zangerl + GPG Key 2FCCF66BB963BD5F + https://snafu.priv.at/ IBM - "Internally Blackened Machines" -- Bob Vaughan about PSU failures
anything that i can do to help with this?
I'm using a stripped down version of your test to reproduce. Pretty sure I've located the culprit, but will take a while to close it due to research into why we have this behavior and also $DAYJOB.
On Sun, 29 Oct 2023 17:15:14 -0700, Joachim Wiberg writes:
Closed #382 as completed via 84adec4006d5a5888fabcd3a96a0160562919e54.
wow, that was super-quick - thank you!
regards, az
-- Alexander Zangerl + GPG Key 2FCCF66BB963BD5F + https://snafu.priv.at/ "Unterschätze nie die Macht dummer Leute, die einer Meinung sind." -- Kurt Tucholsky
here's the scenario that the attached test script reproduces:
there are 3 services, A which has a pid file but no notify, service B which depends on A and uses notify:systemd, and service C which depends on B using <service/B/ready> and also uses notify:systemd. for the test there is another service D which is the same as C but depends on B using <pid/B>
what is unexpected: after normal startup (and without having touched any config files whatsoever), whenever i run
initctl reload
then service C gets restarted. on the other hand, service D is not restarted, nor are services A or B.this is with finit 4.5-rc5.
i've run this test a few times with debug enabled, but am not sure what exactly is going on here. here is just the service definition from the test script:
debug shows that as soon as B's condition is in flux, C gets terminated.
but a few lines later, D is only paused not terminated:
even more unexpected: if service B is changed to NOT depend on any other service, ie.
then C and D are not restarted on
initctl reload
. (i haven't put that variation in the test script, however.)unexpected-restart-test.txt