Subject: Re: [bug#76811] [PATCH] services: nginx: Replace invoke with spawn-command.

From: Ludovic Courtès <[email-masked]>
Date: Mon, 10 Mar 2025 23:04:08 +0100

Ludovic Courtès <[email-masked]> skribis:

> One thing I found that is risky is ‘guix-data-service-setup-database’:
> it loads a bunch of (guix-data-service …) modules into PID 1 and runs
> non-trivial code in there; I strongly recommend doing this in a separate
> process, similar to how ‘bffe-shepherd-services’ does it.

The guix-data-service tests shows that:

  https://ci.guix.gnu.org/build/9557216/log

Namely:

--8<---------------cut here---------------start------------->8---
[    5.788985] shepherd[1]: Service loopback started.
[    5.790001] shepherd[1]: Service loopback running with value #t.
Uncaught exception in task:
In fibers.scm:
    172:8  6 (_)
In shepherd/service/system-log.scm:
   180:10  5 (run-system-log #<<channel> getq: #<atomic-box 7fcc8e8?> ?)
In srfi/srfi-1.scm:
   586:17  4 (map1 (#<input-output: socket 17> #<input: /proc/kmsg?>))
In shepherd/service/system-log.scm:
   181:33  3 (_ #<input-output: socket 17>)
In fibers/io-wakeup.scm:
    72:13  2 (make-wait-operation #<procedure 7fcc8e8b0300 at fiber?> ?)
    72:13  1 (make-wait-operation #f #<procedure 7fcc8e8b0300 at fi?> ?)
In ice-9/boot-9.scm:
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Wrong type to apply: #<syntax-transformer make-base-operation>
--8<---------------cut here---------------end--------------->8---

Here bindings in (fibers io-wakeup) are likely “polluted” by loading
guile-fibers-next via the (guix-data-service …) modules.

Ludo’.