[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