[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#53225: shepherd freezes if wireguard is started with dns config enab
From: |
Nathan Dehnel |
Subject: |
bug#53225: shepherd freezes if wireguard is started with dns config enabled |
Date: |
Wed, 8 Jun 2022 18:23:31 -0500 |
>Could you be more specific? Specifically, could you share
>/var/log/messages for the parts related to Wireguard?
root@guixtest ~# cat /var/log/messages | grep -i wireguardJun 8
18:20:07 localhost vmunix: [ 6.330271] wireguard: WireGuard 1.0.0
loaded. See www.wireguard.com for information.
Jun 8 18:20:07 localhost vmunix: [ 6.330276] wireguard: Copyright
(C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights
Reserved.
>However, the standard
>service constructors/destructors no longer block, and shepherd can serve
>multiple clients concurrently.
I don't know, I guess wireguard uses "non-standard" constructors.
On Thu, Jun 2, 2022 at 8:38 AM Ludovic Courtès <ludo@gnu.org> wrote:
>
> Hi Nathan,
>
> Nathan Dehnel <ncdehnel@gmail.com> skribis:
>
> > Just tested and Shepherd 0.9 does not fix this issue.
>
> Could you be more specific? Specifically, could you share
> /var/log/messages for the parts related to Wireguard?
>
> > On Mon, Jan 17, 2022 at 7:48 AM Ludovic Courtès <ludo@gnu.org> wrote:
>
> [...]
>
> >> One command sent to shepherd by ‘herd …’ must have completed before the
> >> next one is processed.
> >>
> >> You can experience it like this:
> >>
> >> sudo herd eval root '(sleep 3)' & echo status && sudo herd status
> >>
> >> Here the first ‘herd’ command has shepherd block for 3 seconds, so the
> >> second ‘herd’ command won’t print anything until 3 seconds have passed.
>
> This is actually still the case with 0.9, because here we’re calling
> (@ (guile) sleep), which blocks. So… not a good example.
>
> The short story is: it is still possible to write code that blocks
> shepherd, as with the ‘sleep’ example above. However, the standard
> service constructors/destructors no longer block, and shepherd can serve
> multiple clients concurrently.
>
> Ludo’.