GNU bug report logs - #71193
Shepherd fails to start a system when given an incorrect form to the start field of any service

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: guix; Reported by: "Picnoir" <picnoir@HIDDEN>; Done: Ludovic Courtès <ludo@HIDDEN>; Maintainer for guix is bug-guix@HIDDEN.
bug closed, send any further explanations to 71193 <at> debbugs.gnu.org and "Picnoir" <picnoir@HIDDEN> Request was from Ludovic Courtès <ludo@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 71193 <at> debbugs.gnu.org:


Received: (at 71193) by debbugs.gnu.org; 26 Jun 2024 13:48:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jun 26 09:48:06 2024
Received: from localhost ([127.0.0.1]:38851 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sMT0I-0000mG-G4
	for submit <at> debbugs.gnu.org; Wed, 26 Jun 2024 09:48:06 -0400
Received: from eggs.gnu.org ([209.51.188.92]:42780)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1sMT0G-0000lJ-P0
 for 71193 <at> debbugs.gnu.org; Wed, 26 Jun 2024 09:48:05 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludo@HIDDEN>)
 id 1sMT08-00082U-EU; Wed, 26 Jun 2024 09:47:56 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To:
 From; bh=aWb/4+/fNoZsE7WVzQb407hh1omX3I4Iqfd0Oynm/Sw=; b=YjouNKOEEic5zqGcNcff
 ufW+HZxZV2qq/JwklLI+Q35ErVaxbvgj8tfwnnPm6KVwOxv8fJbIF5fp9OQYYVGs0t/EVn0DGSrzO
 9Z6ij+PRtsPqUAyoiLWaGMi1f/TddVJDASRelepiWu4JCUhmI0QO6yBUu1dF1v9Kg9o2dXH4eT8TR
 KhU0jbxCsrYTKrPWbwVTHTDEvXJpI1apvhOgik7aqj82314HtUJ+5nzFPrbxKJFANyxnleXwb6mNP
 4PbxMzwPQgCQBh8pvZlEUX3A1gWbRetNax06uYX5yueOJIFOocbHHRn8NDuHp4yVENt+cJfQcjN4C
 jU+4YmF/9Pl8Bg==;
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN>
To: "Picnoir" <picnoir@HIDDEN>
Subject: Re: bug#71193: Shepherd fails to start a system when given an
 incorrect form to the start field of any service
In-Reply-To: <87fru6uyzg.fsf@HIDDEN> (picnoir@HIDDEN's
 message of "Sat, 25 May 2024 09:33:55 +0200")
References: <87fru6uyzg.fsf@HIDDEN>
Date: Wed, 26 Jun 2024 15:47:52 +0200
Message-ID: <87msn7byt3.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 71193
Cc: 71193 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hi Picnoir,

"Picnoir" <picnoir@HIDDEN> skribis:

> I think the following snippet is a good minimal reproducer for this. Add
> this service to a guix system configuration:
>
> --8<---------------cut here---------------start------------->8---
> (simple-service
>  'shepherd-bug-repro
>  shepherd-root-service-type
>  (list (shepherd-service
>         (documentation "shepherd hang minimal repro")
>         (provision '(shepherd-bug-repro))
>         (requirement '())
>         (start #~('())))))
> u--8<---------------cut here---------------end--------------->8---
>
> =E2=9A=A0 DO NOT BOOT ON A CRITICAL SYSTEM WITH THIS SERVICE, IT'LL BRICK=
 IT =E2=9A=A0
>
> You can create a VM for this system and start it. The VM hangs after the
> log line "creating /etc/machine-id...", before any shepherd service gets
> started.

[...]

> Tested on Shepherd 0.10.4 with the Guix revision
> c5e63e19ac672f9e63fc8ee98fa9a16f978ce19c.

This sounds very much like <https://issues.guix.gnu.org/71144>, which
was fixed in Guix commit cca25a67693bb68a1884a081b415a43fad1e8641,
shortly after the commit you mention.

I tested the reproducer you posted in a VM and it boots fine.  The
problem simply leads to an error message in /var/log/messages:

--8<---------------cut here---------------start------------->8---
Jun 26 15:43:09 localhost vmunix: [    3.574026] shepherd[1]: Exception cau=
ght while loading '/gnu/store/c44hd3gfksalrbsgc3a0ax4v9jmnkzb4-shepherd-she=
pherd-bug-repro.go': #<&compound-exception components: (#<&assertion-failur=
e> #<&origin origin: #f> #<&message message: "Wrong type to apply: ~S"> #<&i
Jun 26 15:43:09 localhost vmunix: [    3.574132] rritants irritants: (())> =
#<&exception-with-kind-and-args kind: wrong-type-arg args: (#f "Wrong type =
to apply: ~S" (()) (()))>)>
Jun 26 15:43:09 localhost vmunix: [    3.583838] shepherd[1]: starting serv=
ices...
Jun 26 15:43:09 localhost vmunix: [    3.585444] shepherd[1]: Configuration=
 successfully loaded from '/gnu/store/8cch4dv5ca1v0hsgyr6d8jay513x7d8g-shep=
herd.conf'.
--8<---------------cut here---------------end--------------->8---

=E2=80=A6 and of course the faulty service doesn=E2=80=99t show up at all i=
n =E2=80=98herd
status=E2=80=99.

Could you confirm it=E2=80=99s fine for you?

Thanks,
Ludo=E2=80=99.




Information forwarded to bug-guix@HIDDEN:
bug#71193; Package guix. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 25 May 2024 07:36:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat May 25 03:36:28 2024
Received: from localhost ([127.0.0.1]:41769 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sAlx6-0006kp-4i
	for submit <at> debbugs.gnu.org; Sat, 25 May 2024 03:36:28 -0400
Received: from lists.gnu.org ([209.51.188.17]:52990)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <picnoir@HIDDEN>) id 1sAlx1-0006kd-8k
 for submit <at> debbugs.gnu.org; Sat, 25 May 2024 03:36:27 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <picnoir@HIDDEN>)
 id 1sAlul-00006h-Dw
 for bug-guix@HIDDEN; Sat, 25 May 2024 03:34:03 -0400
Received: from relay7-d.mail.gandi.net ([2001:4b98:dc4:8::227])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <picnoir@HIDDEN>)
 id 1sAluj-0004c2-Hk; Sat, 25 May 2024 03:34:03 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id C875420005;
 Sat, 25 May 2024 07:33:55 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alternativebit.fr;
 s=gm1; t=1716622436;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 content-transfer-encoding:content-transfer-encoding;
 bh=wdNkwpEQJW0e8biPEGvxVvobdzzr8MtGrL1dy2/FxkI=;
 b=cb4CfNg2+XyhQnm6ldMpAAiX3SQydUCFIo2waAA7TnKd/whtrj1s2jhsvRllLuePw2w+9z
 Oq23u6DB+dpsyYtL6FYYsQKvWinOZCPRgpWOVX6we8gT8Xy7jcqL0cotgcurfN2VWybkX2
 r7HTZziJgEHzVXUfXnrNTwExpCamMVI9KaBnf42oSHLyW38KevczBq8XTokRwmnXU8n2Xg
 FpRNw3wZnK2THmcqxhYcK3vbFnQjbb3/ABmUyPXcKJAJSCTo7o0cgcGA/IuRZhECmn3lPe
 LLaqYhA4pCgVJji3+tXqpDZs1FgZmy3v/JydVZL+2W1+Xne+/qaBOVfYTTuPew==
From: "Picnoir" <picnoir@HIDDEN>
To: bug-guix@HIDDEN
Subject: Shepherd fails to start a system when given an incorrect form to
 the start field of any service
Date: Sat, 25 May 2024 09:33:55 +0200
Message-ID: <87fru6uyzg.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-GND-Sasl: felix@HIDDEN
Received-SPF: pass client-ip=2001:4b98:dc4:8::227;
 envelope-from=picnoir@HIDDEN; helo=relay7-d.mail.gandi.net
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.7 (/)
X-Debbugs-Envelope-To: submit
Cc: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.6 (--)

Hey Guix,

I'm facing a pretty annoying Shepherd 0.10.4 bug.

If a service start script gets provided an incorrect form, such as an
empty quoted list, Shepherd hangs during its early startup and bricks
the overall Guix system.

I think the following snippet is a good minimal reproducer for this. Add
this service to a guix system configuration:

--8<---------------cut here---------------start------------->8---
(simple-service
 'shepherd-bug-repro
 shepherd-root-service-type
 (list (shepherd-service
        (documentation "shepherd hang minimal repro")
        (provision '(shepherd-bug-repro))
        (requirement '())
        (start #~('())))))
u--8<---------------cut here---------------end--------------->8---

=E2=9A=A0 DO NOT BOOT ON A CRITICAL SYSTEM WITH THIS SERVICE, IT'LL BRICK I=
T =E2=9A=A0

You can create a VM for this system and start it. The VM hangs after the
log line "creating /etc/machine-id...", before any shepherd service gets
started.

You get the same behaviour if you end up booting by misfortune a "real"
system having this service.=20

Instead of having the whole system to freeze, I'd expect shepherd to
fail the particular service having an incorrect start form.

I'm not sure what's happening here. I did not manage to diagnose this furth=
er,
the shepherd does not seem to be super chatty at this stage of the boot.

Tested on Shepherd 0.10.4 with the Guix revision
c5e63e19ac672f9e63fc8ee98fa9a16f978ce19c.




Acknowledgement sent to "Picnoir" <picnoir@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-guix@HIDDEN. Full text available.
Report forwarded to bug-guix@HIDDEN:
bug#71193; Package guix. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Mon, 22 Jul 2024 07:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.