Control: severity -1 minor

This is by design.

The ExecStartPost command mirrors the upstream behavior of the startup shell script, only with much less bash:

https://github.com/puppetlabs/ezbake/blob/main/resources/puppetlabs/lein-ezbake/template/global/ext/cli/start.erb

The purpose is to ensure that systemd is aware of the puppetserver's internal state of readiness, because once java is spawned it can take up to minutes for the service to be ready to accept connections.

Without ExecStartPost, systemd will consider the service started too early, and this could cause failures in the unit's dependents.

The bug you describe is an unfortunate, yet minor side-effect, because the service manager does eventually realize the unit is failed (after 300 seconds, by default). If needed, this delay may be shortened by overriding the TimeoutStartSec unit parameter.

I'm keeping this bug opened because the right solution is to implement support for sd_notify() signals in puppetserver, instead of the current clunky text-file method.

This needs to actually be be implemented in trapperkeeper-clojure itself, and a new-feature ticket has already been filed upstream to track this:

https://tickets.puppetlabs.com/projects/TK/issues/TK-499

Once this lands in Debian we'll be able to switch to Type=notify and get rid of the ExecStartPost commands altogether.

-- Jérôme

Reply via email to