jenkins service: remove unneeded (and brittle) part of postStart
The current postStart code holds Jenkins off the "started" state until Jenkins becomes idle. But it should be enough to wait until Jenkins start handling HTTP requests to consider it "started". More reasons why the current approach is bad and we should remove it, from @coreyoconnor in https://github.com/NixOS/nixpkgs/issues/14991#issuecomment-216572571: 1. Repeatedly curling for a specific human-readable string to determine "Active" is fragile. For instance, what happens when jenkins is localized? 2. The time jenkins takes to initializes is variable. This (at least used to) depend on the number of jobs and any plugin upgrades requested. 3. Jenkins can be requested to restart from the UI. Which will not affect the status of the service. This means that the service being "active" does not imply jenkins is initialized. Downstream services cannot assume jenkins is initialized if the service is active. Might as well accept that and remove the initialized test from service startup. Fixes #14991.
This commit is contained in:
parent
e7d3166656
commit
51e5beca42
@ -164,14 +164,6 @@ in {
|
||||
until ${pkgs.curl.bin}/bin/curl -s -L ${cfg.listenAddress}:${toString cfg.port}${cfg.prefix} ; do
|
||||
sleep 10
|
||||
done
|
||||
while true ; do
|
||||
index=`${pkgs.curl.bin}/bin/curl -s -L ${cfg.listenAddress}:${toString cfg.port}${cfg.prefix}`
|
||||
if [[ !("$index" =~ 'Please wait while Jenkins is restarting' ||
|
||||
"$index" =~ 'Please wait while Jenkins is getting ready to work') ]]; then
|
||||
exit 0
|
||||
fi
|
||||
sleep 30
|
||||
done
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
|
Loading…
Reference in New Issue
Block a user