Hi! Mathieu Othacehe <othac...@gnu.org> skribis:
>> * cgit-test (https://ci.guix.gnu.org/build/646812/details) > > The nginx daemon seems to be started multiple times: I believe this is caused by a change of semantics (really: a bug) in the shepherd ‘start’ method in 0.9.0. Previously, ‘start’ would wait until the daemon was started. If the service was being started, shepherd wouldn’t reply until it was done starting it. In 0.9.0, shepherd replies even while it’s waiting for the service to be started. But as a consequence, it lets you start a service that is already being started, leading to this mess you reported. The proper fix is to better track the status of each service in shepherd, and to prevent double-starts. In the interim, perhaps we can work around that by using a different check to determine whether the service is running. For instance, instead of: (test-assert "nginx running" (marionette-eval '(begin (use-modules (gnu services herd)) (start-service 'nginx)) marionette)) … we’d write something like: (test-assert "nginx running" (wait-for-file "/var/run/nginx/pid")) Thoughts? I’ll give that a try. Thanks for the heads-up! Ludo’.