* bug#59515: nginx: Fails to start on boot while upstream service is not yet running
@ 2022-11-23 15:34 Jonathan Brielmaier
2022-11-23 17:35 ` mirai
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Jonathan Brielmaier @ 2022-11-23 15:34 UTC (permalink / raw)
To: 59515
When I start my personal server with a radicale service behind a nginx
reverse proxy, nginx fails to start.
The relevant part in the log:
Nov 23 16:02:56 localhost shepherd[1]: Service networking has been started.
Nov 23 16:02:56 localhost shepherd[1]: Service radicale has been started.
Nov 23 16:02:56 localhost shepherd[1]: Service ssh-daemon has been started.
Nov 23 16:02:56 localhost shepherd[1]: [nginx] nginx: [emerg] host not
found in upstream "localhost:5232" in
/gnu/store/y29zl57pprwxbcxfx593s16456kxk99y-nginx.conf:15
Nov 23 16:02:56 localhost shepherd[1]: Failed to start nginx in the
background.
The config can be found here:
https://gitlab.com/jonsger/jonsger-guix/-/blob/master/config/baebia.scm#L116
```
(upstream-blocks (list
(nginx-upstream-configuration
(name "radicale")
(servers (list "localhost:5232")))))
```
I wonder whats going wrong here. Is there a way to define that nginx
service should wait until radicale service is started?
~Jonathan
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#59515: nginx: Fails to start on boot while upstream service is not yet running
2022-11-23 15:34 bug#59515: nginx: Fails to start on boot while upstream service is not yet running Jonathan Brielmaier
@ 2022-11-23 17:35 ` mirai
2022-11-25 8:56 ` Jonathan Brielmaier
2023-03-21 23:02 ` Jonathan Brielmaier
2 siblings, 0 replies; 6+ messages in thread
From: mirai @ 2022-11-23 17:35 UTC (permalink / raw)
To: 59515
nginx-configuration has a 'shepherd-requirement' parameter that can be used here
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#59515: nginx: Fails to start on boot while upstream service is not yet running
2022-11-23 15:34 bug#59515: nginx: Fails to start on boot while upstream service is not yet running Jonathan Brielmaier
2022-11-23 17:35 ` mirai
@ 2022-11-25 8:56 ` Jonathan Brielmaier
2022-11-27 21:14 ` Ludovic Courtès
2023-03-21 23:02 ` Jonathan Brielmaier
2 siblings, 1 reply; 6+ messages in thread
From: Jonathan Brielmaier @ 2022-11-25 8:56 UTC (permalink / raw)
To: 59515
Ah thanks.
I added `(shepherd-requirement '(radicale))` to my nginx-configuration.
Sadly the issue is not fixed, the situation is the same as before.
I assume that radicale takes a fracture of a second to start. And nginx
starts faster up. See this small experiment:
$ sudo herd stop radicale
$ sudo herd start radicale; curl localhost:5232
Service radicale has been started.
curl: (7) Failed to connect to localhost port 5232 after 0 ms:
Verbindungsaufbau abgelehnt
$ sudo herd stop radicale
$ sudo herd start radicale; sleep 0.2; curl localhost:5232
Service radicale has been started.
Redirected to /.web
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#59515: nginx: Fails to start on boot while upstream service is not yet running
2022-11-25 8:56 ` Jonathan Brielmaier
@ 2022-11-27 21:14 ` Ludovic Courtès
2023-01-02 17:09 ` Jonathan Brielmaier
0 siblings, 1 reply; 6+ messages in thread
From: Ludovic Courtès @ 2022-11-27 21:14 UTC (permalink / raw)
To: Jonathan Brielmaier; +Cc: 59515
Jonathan Brielmaier <jonathan.brielmaier@web.de> skribis:
> I added `(shepherd-requirement '(radicale))` to my nginx-configuration.
> Sadly the issue is not fixed, the situation is the same as before.
>
> I assume that radicale takes a fracture of a second to start. And nginx
> starts faster up. See this small experiment:
That looks like a bug in the radicale service: there’s no
synchronization upon startup:
--8<---------------cut here---------------start------------->8---
(list (shepherd-service
(provision '(radicale))
(documentation "Run the radicale daemon.")
(requirement '(networking))
(start #~(make-forkexec-constructor
(list #$(file-append package "/bin/radicale")
"-C" #$config-file)
#:user "radicale"
#:group "radicale"))
(stop #~(make-kill-destructor))))
--8<---------------cut here---------------end--------------->8---
It should wait for a PID file or be started as a systemd or inetd
service. That way, we’d be sure that shepherd considers it started once
it’s really listening for input. A quick grep in the source suggests it
creates a PID file somewhere.
HTH!
Ludo’.
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#59515: nginx: Fails to start on boot while upstream service is not yet running
2022-11-27 21:14 ` Ludovic Courtès
@ 2023-01-02 17:09 ` Jonathan Brielmaier
0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Brielmaier @ 2023-01-02 17:09 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 59515
On 27.11.22 22:14, Ludovic Courtès wrote:> That looks like a bug in the
radicale service: there’s no
> synchronization upon startup:
I think its rather an issue with nscd, networking or some other base
service.
Changing the nginx configuration from
(servers (list "localhost:5232"))
to
(servers (list "127.0.0.1:5232"))
resolves the issue for me :)
> It should wait for a PID file or be started as a systemd or inetd
> service. That way, we’d be sure that shepherd considers it started once
> it’s really listening for input. A quick grep in the source suggests it
> creates a PID file somewhere.
I couldn't find any PID file on my server of radicale. But there seems
to by a .lock file: /var/lib/radicale/collections/.Radicale.lock
No idea if that would be helpful...
~Jonathan
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#59515: nginx: Fails to start on boot while upstream service is not yet running
2022-11-23 15:34 bug#59515: nginx: Fails to start on boot while upstream service is not yet running Jonathan Brielmaier
2022-11-23 17:35 ` mirai
2022-11-25 8:56 ` Jonathan Brielmaier
@ 2023-03-21 23:02 ` Jonathan Brielmaier
2 siblings, 0 replies; 6+ messages in thread
From: Jonathan Brielmaier @ 2023-03-21 23:02 UTC (permalink / raw)
To: 59515-done
Closing.
Workaround with using "127.0.0.1" instead of "localhost" provided.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-03-21 23:03 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-23 15:34 bug#59515: nginx: Fails to start on boot while upstream service is not yet running Jonathan Brielmaier
2022-11-23 17:35 ` mirai
2022-11-25 8:56 ` Jonathan Brielmaier
2022-11-27 21:14 ` Ludovic Courtès
2023-01-02 17:09 ` Jonathan Brielmaier
2023-03-21 23:02 ` Jonathan Brielmaier
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.