[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#67839: shepherd: sometimes hangs on `guix system reconfigure`
From: |
Ludovic Courtès |
Subject: |
bug#67839: shepherd: sometimes hangs on `guix system reconfigure` |
Date: |
Sun, 17 Dec 2023 22:59:59 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Hi Attila,
Attila Lendvai <attila.lendvai@gmail.com> skribis:
> * modules/shepherd.scm (main): Switch with-service-registry and
> with-process-monitor. This way the parameterize of the process monitor covers
> everything else. This fixes the bug that caused `guix system reconfigure` to
> hang in certain situations. Fix proposed by @emixa-d at:
> https://github.com/wingo/fibers/issues/29#issuecomment-1858922276.
[...]
> * modules/shepherd/service.scm (spawn-service-controller): Add two asserts.
> This is the bug that causes `guix system reconfigure ...` to sometimes hang,
> and subsequently all shepherd commands, because a match-error flies out from
> the service-controller of a replaced service, and thus its fiber dies. These
> asserts get triggered without the previous commit that fixes the issue.
Good catch!!
I pushed these patches with small edits, in particular adding a test
that reproduces the bug without relying on assertion failures:
5dbde1c support: ‘assert’ logs source location information.
0bcf02a Update NEWS.
c07f0a8 service: Add asserts to ensure a process monitor is running.
9be0b7e shepherd: Make sure ‘with-process-monitor’ covers everything needed.
Thanks for the tedious but fruitful debugging work!
Ludo’.