[Pkg-puppet-devel] Bug#1032241: puppetserver - service unit fails to realize the main process died
Jérôme Charaoui
jerome at riseup.net
Fri Mar 3 21:00:48 GMT 2023
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
More information about the Pkg-puppet-devel
mailing list