From unknown Sun Jun 15 10:55:34 2025 X-Loop: help-debbugs@gnu.org Subject: bug#56674: [Shepherd] Use of =?UTF-8?Q?=E2=80=98waitpid=E2=80=99,_?= =?UTF-8?Q?=E2=80=98system*=E2=80=99,?= etc. in service code can cause deadlocks Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 20 Jul 2022 21:40:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 56674 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 56674@debbugs.gnu.org X-Debbugs-Original-To: bug-guix@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.165835315420280 (code B ref -1); Wed, 20 Jul 2022 21:40:01 +0000 Received: (at submit) by debbugs.gnu.org; 20 Jul 2022 21:39:14 +0000 Received: from localhost ([127.0.0.1]:36196 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oEHPW-0005H1-FD for submit@debbugs.gnu.org; Wed, 20 Jul 2022 17:39:14 -0400 Received: from lists.gnu.org ([209.51.188.17]:56904) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oEHPT-0005Gs-NI for submit@debbugs.gnu.org; Wed, 20 Jul 2022 17:39:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34104) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oEHPT-0001Ia-IN for bug-guix@gnu.org; Wed, 20 Jul 2022 17:39:11 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:39164) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oEHPT-0001TV-AK for bug-guix@gnu.org; Wed, 20 Jul 2022 17:39:11 -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:Subject:To:From:in-reply-to: references; bh=M8w5WeDxJS14gBGGsfc8CvBrW4CYqhv18DUTdfvx+EU=; b=HBRZBuMtbWN9u3 zm3KRNpSPuVelXLB6WvH2dvU2YbVqCxFLNGQkiD8MfxsjY9q78jQeQQK5OB/8MRhI7UaSsfEjgy/w zDOEyY7mCcTyPZXHaGLEzO/3m+00nAz4K39gCA5KEHYkkYl18VW1r7GAyU6jvhBpikmlXtCPjr8vF CIds4JmF3KO6LCWdCEBf+23EPMNoerp9LFcaZisTscpqoTbhTVU4wsm/ZISSuO1Va7LWi2cc1ofKX 0shWBs0cxQhIuqvl9bmnPZiqSoZ2pTgZ3Gy0/GyrtLu1SMRSoIoiwnUkn/3HctM2lxfZoGb0HDvxz udLc9tiWBxbuQjp9g9Dw==; Received: from 91-160-117-201.subs.proxad.net ([91.160.117.201]:64292 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oEHPS-00062Y-F2 for bug-guix@gnu.org; Wed, 20 Jul 2022 17:39:11 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: Duodi 2 Thermidor an 230 de la =?UTF-8?Q?R=C3=A9volution,?= jour du Bouillon-blanc X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Wed, 20 Jul 2022 23:39:08 +0200 Message-ID: <8735evpipv.fsf@inria.fr> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi! We=E2=80=99ve just had a bad experience with the nginx service on berlin, w= here =E2=80=98herd restart nginx=E2=80=99 would cause shepherd to get stuck fore= ver in =E2=80=98waitpid=E2=80=99 on the process that was supposed to start nginx. The details are unclear, but one thing is clear is that using =E2=80=98wait= pid=E2=80=99 (either directly or indirectly with =E2=80=98system*=E2=80=99, which is what =E2=80=98nginx-service-type=E2=80=99 does) is not great: 1. In the best case, shepherd (as of 0.9.1) is stuck while =E2=80=98syste= m*=E2=80=99 is in =E2=80=98waitpid=E2=80=99 waiting for child process completion (= =E2=80=9Cstuck=E2=80=9D as in: doesn=E2=80=99t do anything, not even answering =E2=80=98herd=E2= =80=99 requests or inetd connections.) 2. I don=E2=80=99t think that can happen with =E2=80=98system*=E2=80=99 (= because it=E2=80=99s in C), but generally speaking, there=E2=80=99s a possibility that shepherd=E2= =80=99s event loop will handle child process termination before some other user-made =E2=80=98waitpid=E2=80=99 call does. Anyway, that=E2=80=99s a bad situation. So I can think of several ways to address it: 1. Change the nginx service =E2=80=98stop=E2=80=99 method to just (make-kill-destructor), which should work just as well as invoking =E2=80=9Cnginx -s stop=E2=80=9D. 2. Have Shepherd provide a replacement for =E2=80=98system*=E2=80=99. Thoughts? Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Wed Jul 20 17:43:11 2022 Received: (at control) by debbugs.gnu.org; 20 Jul 2022 21:43:11 +0000 Received: from localhost ([127.0.0.1]:36208 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oEHTL-0005Oz-ER for submit@debbugs.gnu.org; Wed, 20 Jul 2022 17:43:11 -0400 Received: from eggs.gnu.org ([209.51.188.92]:50134) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oEHTK-0005Om-4O for control@debbugs.gnu.org; Wed, 20 Jul 2022 17:43:10 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:39210) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oEHTE-00029J-PI for control@debbugs.gnu.org; Wed, 20 Jul 2022 17:43:04 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:Subject:From:To:Date:in-reply-to: references; bh=tIo1vtE8LHkt1DuBdsJ0yek3wP8Rl64wxcfRDApbZUk=; b=f3LdNjX52ey0HH 5Bik/51O4cNPDrHp5CJAfNhhGH/bTp4NdAGrp9j/eC5Xcay6Hs6cBhb5V/9j7nJpteZPA7oKaOoph 2iKr8oahzE8t+VY+Y8kw2sIOktA0lNGdhe3M6d0mCufWxei1j7tnmAz1cQRjddl+Oii9qfMkT5UGJ Mxx9gx3fh1RQLRfoiO6mWCP1eE/DXcN4fdRYSoA1vhX0/E+WMMBJogpwdgIIvRFzwdqqhYyYj0qPJ KZvtaZFW4Lo9JHnf5U7vp2PvfNZ8tKhVI3p8YfsyfttLudW9Im8V+Rdxgp/Zhw5LDfis5IgNpxmDQ PCq5LU8mI5vO+CD6+Nug==; Received: from 91-160-117-201.subs.proxad.net ([91.160.117.201]:58000 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oEHTE-0006UW-D2 for control@debbugs.gnu.org; Wed, 20 Jul 2022 17:43:04 -0400 Date: Wed, 20 Jul 2022 23:43:02 +0200 Message-Id: <87y1wno3yx.fsf@gnu.org> To: control@debbugs.gnu.org From: =?utf-8?Q?Ludovic_Court=C3=A8s?= Subject: control message for bug #56674 MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) severity 56674 important quit From unknown Sun Jun 15 10:55:34 2025 X-Loop: help-debbugs@gnu.org Subject: bug#56674: [Shepherd] Use of =?UTF-8?Q?=E2=80=98waitpid=E2=80=99,_?= =?UTF-8?Q?=E2=80=98system*=E2=80=99,?= etc. in service code can cause deadlocks Resent-From: Maxime Devos Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 20 Jul 2022 23:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56674 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= , 56674@debbugs.gnu.org Received: via spool by 56674-submit@debbugs.gnu.org id=B56674.16583608959431 (code B ref 56674); Wed, 20 Jul 2022 23:49:02 +0000 Received: (at 56674) by debbugs.gnu.org; 20 Jul 2022 23:48:15 +0000 Received: from localhost ([127.0.0.1]:36292 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oEJQM-0002S2-Mx for submit@debbugs.gnu.org; Wed, 20 Jul 2022 19:48:14 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:51668) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oEJQI-0002Re-Aa for 56674@debbugs.gnu.org; Wed, 20 Jul 2022 19:48:13 -0400 Received: from [IPV6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16] ([IPv6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16]) by michel.telenet-ops.be with bizsmtp id xbo82700220ykKC06bo8kD; Thu, 21 Jul 2022 01:48:08 +0200 Message-ID: Date: Thu, 21 Jul 2022 01:48:02 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Content-Language: en-US References: <8735evpipv.fsf@inria.fr> From: Maxime Devos In-Reply-To: <8735evpipv.fsf@inria.fr> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------rO9TdGZSyR9TsS0nmOsl7Afp" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1658360888; bh=LKnyQWwz312nFjqfIt/n+a9rK0mdbsufnHod9anAhw0=; h=Date:To:References:From:Subject:In-Reply-To; b=jYz20Xiq4Q3Y8MzbuXQZk1ukgu5ZXzeffBlYs6shVUifbiE7eU6wNs1i7bnMjcCB/ bK/oTNMZZKcXmVlUojM8JAyYjzeNcDNhCtvsON2sXkHcr6uCL0fi+/IMxrYinIOGyz YZC5lsFh3ukbd8g+lWBRCqha31RZ59uvU/RYFDppLFTWmSubkiCHC8roA4CyePZFTr sFCWBr332OXzqLHKb6rIXIbsFmnFosdCnaXYAP4kBI0/H5CNnarYKDhiSjKvPDOuWF qo17FvQUtTGQD6XDyxvDMj9K6f/TA6eEgGNj7O3tVarPwbvLlj0voVBEjQdWF3zIuM aAMnh/caH4Org== X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------rO9TdGZSyR9TsS0nmOsl7Afp Content-Type: multipart/mixed; boundary="------------QXUNI4seZvp0kRwOZJvpJxvf"; protected-headers="v1" From: Maxime Devos To: =?UTF-8?Q?Ludovic_Court=c3=a8s?= , 56674@debbugs.gnu.org Message-ID: Subject: =?UTF-8?B?UmU6IGJ1ZyM1NjY3NDogW1NoZXBoZXJkXSBVc2Ugb2Yg4oCYd2FpdHBp?= =?UTF-8?B?ZOKAmSwg4oCYc3lzdGVtKuKAmSwgZXRjLiBpbiBzZXJ2aWNlIGNvZGUgY2FuIGNh?= =?UTF-8?Q?use_deadlocks?= References: <8735evpipv.fsf@inria.fr> In-Reply-To: <8735evpipv.fsf@inria.fr> --------------QXUNI4seZvp0kRwOZJvpJxvf Content-Type: multipart/mixed; boundary="------------kv0cVk3k7o1em67hYH82CPqV" --------------kv0cVk3k7o1em67hYH82CPqV Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 DQpPbiAyMC0wNy0yMDIyIDIzOjM5LCBMdWRvdmljIENvdXJ0w6hzIHdyb3RlOg0KPiBIaSEN Cj4NCj4gV2XigJl2ZSBqdXN0IGhhZCBhIGJhZCBleHBlcmllbmNlIHdpdGggdGhlIG5naW54 IHNlcnZpY2Ugb24gYmVybGluLCB3aGVyZQ0KPiDigJhoZXJkIHJlc3RhcnQgbmdpbnjigJkg d291bGQgY2F1c2Ugc2hlcGhlcmQgdG8gZ2V0IHN0dWNrIGZvcmV2ZXIgaW4NCj4g4oCYd2Fp dHBpZOKAmSBvbiB0aGUgcHJvY2VzcyB0aGF0IHdhcyBzdXBwb3NlZCB0byBzdGFydCBuZ2lu eC4NCj4NCj4gVGhlIGRldGFpbHMgYXJlIHVuY2xlYXIsIGJ1dCBvbmUgdGhpbmcgaXMgY2xl YXIgaXMgdGhhdCB1c2luZyDigJh3YWl0cGlk4oCZDQo+IChlaXRoZXIgZGlyZWN0bHkgb3Ig aW5kaXJlY3RseSB3aXRoIOKAmHN5c3RlbSrigJksIHdoaWNoIGlzIHdoYXQNCj4g4oCYbmdp bngtc2VydmljZS10eXBl4oCZIGRvZXMpIGlzIG5vdCBncmVhdDoNCj4NCj4gICAgMS4gSW4g dGhlIGJlc3QgY2FzZSwgc2hlcGhlcmQgKGFzIG9mIDAuOS4xKSBpcyBzdHVjayB3aGlsZSDi gJhzeXN0ZW0q4oCZDQo+ICAgICAgIGlzIGluIOKAmHdhaXRwaWTigJkgd2FpdGluZyBmb3Ig Y2hpbGQgcHJvY2VzcyBjb21wbGV0aW9uICjigJxzdHVja+KAnSBhcw0KPiAgICAgICBpbjog ZG9lc27igJl0IGRvIGFueXRoaW5nLCBub3QgZXZlbiBhbnN3ZXJpbmcg4oCYaGVyZOKAmSBy ZXF1ZXN0cyBvcg0KPiAgICAgICBpbmV0ZCBjb25uZWN0aW9ucy4pDQo+DQo+ICAgIDIuIEkg ZG9u4oCZdCB0aGluayB0aGF0IGNhbiBoYXBwZW4gd2l0aCDigJhzeXN0ZW0q4oCZIChiZWNh dXNlIGl04oCZcyBpbiBDKSwNCj4gICAgICAgYnV0IGdlbmVyYWxseSBzcGVha2luZywgdGhl cmXigJlzIGEgcG9zc2liaWxpdHkgdGhhdCBzaGVwaGVyZOKAmXMgZXZlbnQNCj4gICAgICAg bG9vcCB3aWxsIGhhbmRsZSBjaGlsZCBwcm9jZXNzIHRlcm1pbmF0aW9uIGJlZm9yZSBzb21l IG90aGVyDQo+ICAgICAgIHVzZXItbWFkZSDigJh3YWl0cGlk4oCZIGNhbGwgZG9lcy4NCj4N Cj4gQW55d2F5LCB0aGF04oCZcyBhIGJhZCBzaXR1YXRpb24uDQo+DQo+IFNvIEkgY2FuIHRo aW5rIG9mIHNldmVyYWwgd2F5cyB0byBhZGRyZXNzIGl0Og0KPg0KPiAgICAxLiBDaGFuZ2Ug dGhlIG5naW54IHNlcnZpY2Ug4oCYc3RvcOKAmSBtZXRob2QgdG8ganVzdA0KPiAgICAgICAo bWFrZS1raWxsLWRlc3RydWN0b3IpLCB3aGljaCBzaG91bGQgd29yayBqdXN0IGFzIHdlbGwg YXMgaW52b2tpbmcNCj4gICAgICAg4oCcbmdpbnggLXMgc3RvcOKAnS4NCj4NCj4gICAgMi4g SGF2ZSBTaGVwaGVyZCBwcm92aWRlIGEgcmVwbGFjZW1lbnQgZm9yIOKAmHN5c3RlbSrigJku DQpXaHkgU2hlcGhlcmQgYW5kIG5vdCBndWlsZSBmaWJlcnM/IElzIHRoaXMgYSBTaGVwaGVy ZC1zcGVjaWZpYyBwcm9ibGVtPw0KPg0KPiBUaG91Z2h0cz8NCg0KMy4gTWFrZSB3YWl0cGlk IChvciBhIHZhcmlhbnQgdGhhdCBkb2VzIHdoYXQgd2UgbmVlZCkgaW50ZXJhY3Qgd2VsbCB3 aXRoIA0KZ3VpbGUtZmliZXJzLCBsaWtlIGhvdyAnYWNjZXB0JyBpcyBkb2Vzbid0IGluaGli aXQgc3dpdGNoaW5nIHRvIGFub3RoZXIgDQpmaWJlci4gVGhlcmUgc29tZSBMaW51eCBBUEkg d2l0aCBzaWduYWwgaGFuZGxlcnMgb3IgcGlkIGZkcyBvciBzdWNoIHRoYXQgDQptaWdodCBi ZSB1c2VmdWwgaGVyZSwgdGhvdWdoIEkgZG9uJ3QgcmVjYWxsIHRoZSBuYW1lLiBQcmVzdW1h Ymx5IA0Kc29tZXRoaW5nIHNpbWlsYXIgY2FuIGJlIGRvbmUgZm9yIHRoZSBIdXJkLCB0aG91 Z2ggc29tZSBDIGdsdWUgbWF5IGJlIA0KbmVlZGVkIHRvIGFjY2VzcyB0aGUgcmlnaHQgSHVy ZCBBUElzIGlmIHRoZSBzaWduYWwgaGFuZGxlciBBUEkgaXNuJ3QgDQpwb3J0YWJsZS4NCg0K QWx0ZXJuYXRpdmVseToNCg0KNC4gRG8gdGhlIHdhaXRwaWQgaW4gYSBzZXBhcmF0ZSB0aHJl YWQgKG5lZWRzIHdvcmstYXJvdW5kIGZvciB0aGUgDQptdWx0aS10aHJlYWRlZCBmb3JrIHBy b2JsZW0sIHByb2JhYmx5IEMgdGhpbmdzPyBPciBtb2RpZnlpbmcgR3VpbGUgYW5kIA0KbWF5 YmUgZ2xpYmMgdG8gYXZvaWQgYXN5bmMtdW5zYWZlIHRoaW5ncyBvciBtYWtlIG1vcmUgdGhp bmdzIGFzeW5jLXNhZmUgDQpvciB3aGF0ZXZlciB0aGUgYXBwcm9wcmlhdGUgLi4uLXNhZmUg aXMgaGVyZS4pDQoNCklmIG5vdCBhIEd1aWxlIEZpYmVycyBpbnRlcmFjdGlvbiBwcm9ibGVt LCB0aGVuIHRoZSBhc3luY2hyb25vdXMgc2lnbmFsIA0KaGFuZGxlciBBUEkgbWlnaHQgc3Rp bGwgYmUgdXNlZnVsLg0KDQpHcmVldGluZ3MsDQpNYXhpbWUNCg0K --------------kv0cVk3k7o1em67hYH82CPqV Content-Type: application/pgp-keys; name="OpenPGP_0x49E3EE22191725EE.asc" Content-Disposition: attachment; filename="OpenPGP_0x49E3EE22191725EE.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- xjMEX4ch6BYJKwYBBAHaRw8BAQdANPb/d6MrGnGi5HyvODCkBUJPRjiFQcRU5V+m xvMaAa/NL01heGltZSBEZXZvcyA8bWF4aW1lLmRldm9zQHN0dWRlbnQua3VsZXV2 ZW4uYmU+wpAEExYIADgWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCX4ch6AIbAwUL CQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRBJ4+4iGRcl7japAQC3opZ2KGWzWmRc /gIWSu0AAcfMwyinFEEPa/QhUt2CogD/e2RdF4CYAgaRHJJmZ9WU7piKbLZ7llB4 LzgezVDHggzNJU1heGltZSBEZXZvcyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5iZT7C kAQTFggAOBYhBMHzPuIMUo/bfdcBH0nj7iIZFyXuBQJf56ycAhsDBQsJCAcDBRUK CQgLBRYCAwEAAh4BAheAAAoJEEnj7iIZFyXujpQBAKV1SwDDl4f24rXciDlB9L8W ycZt30CgbewMSRQk4mvbAP9dFMbVVixYBd6C8cfhR+NsOBGiOJnQABlUmgNuqGFJ Dc44BF+HIegSCisGAQQBl1UBBQEBB0BOlzIWiJzgobMF6/cqwLaLk7jIcFSZ++c0 k9cCNT6YXwMBCAfCeAQYFggAIBYhBMHzPuIMUo/bfdcBH0nj7iIZFyXuBQJfhyHo AhsMAAoJEEnj7iIZFyXuMr0BAJc8cl5PGvVmVuSQVKjleNl4DK1/XAaPAYPe34AE fZJPAP9IqLCQhH/FeJanHqBP8gNdGNI2qn8RnnLVfRJgUjZ1BA=3D=3D =3DOVqp -----END PGP PUBLIC KEY BLOCK----- --------------kv0cVk3k7o1em67hYH82CPqV-- --------------QXUNI4seZvp0kRwOZJvpJxvf-- --------------rO9TdGZSyR9TsS0nmOsl7Afp Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYtiUMgUDAAAAAAAKCRBJ4+4iGRcl7nmK AP4voSC2RsZe4vnuPEMzf5MuoVD5gRtKWKC4jSJMvlNCcAD8DNNYgVHSzY2i2xiUnjiqY8v+TaW/ Z/KZjSLYMEd9PQE= =kY8Z -----END PGP SIGNATURE----- --------------rO9TdGZSyR9TsS0nmOsl7Afp-- From unknown Sun Jun 15 10:55:34 2025 X-Loop: help-debbugs@gnu.org Subject: bug#56674: [Shepherd] Use of =?UTF-8?Q?=E2=80=98waitpid=E2=80=99,_?= =?UTF-8?Q?=E2=80=98system*=E2=80=99,?= etc. in service code can cause deadlocks Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Thu, 21 Jul 2022 15:40:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56674 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Maxime Devos Cc: 56674@debbugs.gnu.org Received: via spool by 56674-submit@debbugs.gnu.org id=B56674.16584179911140 (code B ref 56674); Thu, 21 Jul 2022 15:40:02 +0000 Received: (at 56674) by debbugs.gnu.org; 21 Jul 2022 15:39:51 +0000 Received: from localhost ([127.0.0.1]:38692 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oEYHG-0000IK-VS for submit@debbugs.gnu.org; Thu, 21 Jul 2022 11:39:51 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37768) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oEYHE-0000I6-0v for 56674@debbugs.gnu.org; Thu, 21 Jul 2022 11:39:49 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:53504) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oEYH8-0003gP-An; Thu, 21 Jul 2022 11:39:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=Ymmz0FaKrODIrDTxxzCnC661qUdLGt8gJR7LCuNeBKc=; b=KkSClf0enQoWCzu4o88G 5AdkVFjAovuyOmb9LU4IqwT3gCoJA3dOUl2ohlfpKTClTJRXuZMDRPc9knD/tNg363SLYkxbL/qfs b0mxaQ7YvcUNo+KvowKHcBGImtWLJcFvHlQPV22WrLIEZOmXKvR7GVLq1e6Qwr82Z3SuVEBMbZAw4 IwGGp8uyHqVT1lEBKiZ2qD+chcZZygA6d9zksv560qPKu4AXpe9yUvuhhUezOs5WOwYjDVLXdy79s scx2UxIKMTqv9frYyFKOLD4Ngnzmg4P9mrX6m78Lnk6YmGJRwrJERi1Eb88Idov4hZO23KXmfpv99 BrXaXGoW2yCEOA==; Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=34508 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oEYH7-0003am-UH; Thu, 21 Jul 2022 11:39:42 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <8735evpipv.fsf@inria.fr> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: Tridi 3 Thermidor an 230 de la =?UTF-8?Q?R=C3=A9volution,?= jour du Melon X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Thu, 21 Jul 2022 17:39:39 +0200 In-Reply-To: (Maxime Devos's message of "Thu, 21 Jul 2022 01:48:02 +0200") Message-ID: <87fsiujwzo.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Maxime Devos skribis: > Why Shepherd and not guile fibers? Is this a Shepherd-specific problem? Blocking calls are a problem for Fibers in general, and =E2=80=98waitpid=E2= =80=99 is no exception. The problem here is Shepherd-specific in the sense that we=E2=80=99re more likely to use =E2=80=98system*=E2=80=99 and =E2=80=98waitpid=E2=80=99 in th= is context. It=E2=80=99s also Shepherd-specific because shepherd already runs an event loop that tracks signal FDs and will thus =E2=80=9Csee=E2=80=9D SIGCHLD events. > 3. Make waitpid (or a variant that does what we need) interact well > with guile-fibers, like how 'accept' is doesn't inhibit switching to > another fiber. There some Linux API with signal handlers or pid fds or > such that might be useful here, though I don't recall the > name. Presumably something similar can be done for the Hurd, though > some C glue may be needed to access the right Hurd APIs if the signal > handler API isn't portable. Yes, that=E2=80=99s roughly what I had in mind when I mentioned providing a replacement for =E2=80=98system*=E2=80=99 (but you=E2=80=99re right, it=E2= =80=99s a replacement for =E2=80=98waitpid=E2=80=99 at its core). > Alternatively: > > 4. Do the waitpid in a separate thread (needs work-around for the > multi-threaded fork problem, probably C things? Or modifying Guile and > maybe glibc to avoid async-unsafe things or make more things > async-safe or whatever the appropriate ...-safe is here.) For shepherd, multithreading is not an option due to the semantics of fork in the presence of threads. Ludo=E2=80=99. From unknown Sun Jun 15 10:55:34 2025 X-Loop: help-debbugs@gnu.org Subject: bug#56674: [Shepherd] Use of =?UTF-8?Q?=E2=80=98waitpid=E2=80=99,_?= =?UTF-8?Q?=E2=80=98system*=E2=80=99,?= etc. in service code can cause deadlocks Resent-From: Maxime Devos Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Sat, 13 Aug 2022 15:01:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56674 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 56674@debbugs.gnu.org Received: via spool by 56674-submit@debbugs.gnu.org id=B56674.16604028158022 (code B ref 56674); Sat, 13 Aug 2022 15:01:01 +0000 Received: (at 56674) by debbugs.gnu.org; 13 Aug 2022 15:00:15 +0000 Received: from localhost ([127.0.0.1]:34870 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oMscY-00022V-FL for submit@debbugs.gnu.org; Sat, 13 Aug 2022 11:00:15 -0400 Received: from andre.telenet-ops.be ([195.130.132.53]:51856) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oMscH-0001Gy-OG for 56674@debbugs.gnu.org; Sat, 13 Aug 2022 11:00:13 -0400 Received: from [IPV6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16] ([IPv6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16]) by andre.telenet-ops.be with bizsmtp id 72zv2800J20ykKC012zvEn; Sat, 13 Aug 2022 16:59:56 +0200 Message-ID: Date: Sat, 13 Aug 2022 16:59:55 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Content-Language: en-US References: <8735evpipv.fsf@inria.fr> <87fsiujwzo.fsf@gnu.org> From: Maxime Devos In-Reply-To: <87fsiujwzo.fsf@gnu.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------Ty043N35gq77RkR1INOJ99e1" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1660402796; bh=49pWjxIfHB525YSo2DdMMbsnkVZDneE56qFZ80Qdc9c=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=nJx7FgVRBS/t0GxGYUtjA8B3qSMJ1uOwCEVZHtoxVVV1tyZOftmZPF+7k/jCTUJKm Hv8xABPWsomxZFqqLT31HFKFxJAbJ1cLgwfRpVnkc5iSQDJWRhx46ndoym6hDuUAGr ilcgvrXzL2Y8LK9EIQjY6a+Cucdc1c62YnO2h9XrCi+tBcsBF1Sapz7AL81o9ZKVqp hag0qXpKWJfVIXRS7aRc1YYgUJrFl/KNip0zxoQripjc4Jn/LwW1WTqoKFvReuquen maQ3+vfI8qSrrb5VZqiIacwz7Px4XET7mMmxdOvUkBkLOFzXGQSRyETfyQTjGwWSuc /Mo9jbMob3l7w== X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------Ty043N35gq77RkR1INOJ99e1 Content-Type: multipart/mixed; boundary="------------CWlN6Dx403tuLcg6YEJPHBn2"; protected-headers="v1" From: Maxime Devos To: =?UTF-8?Q?Ludovic_Court=c3=a8s?= Cc: 56674@debbugs.gnu.org Message-ID: Subject: =?UTF-8?B?UmU6IGJ1ZyM1NjY3NDogW1NoZXBoZXJkXSBVc2Ugb2Yg4oCYd2FpdHBp?= =?UTF-8?B?ZOKAmSwg4oCYc3lzdGVtKuKAmSwgZXRjLiBpbiBzZXJ2aWNlIGNvZGUgY2FuIGNh?= =?UTF-8?Q?use_deadlocks?= References: <8735evpipv.fsf@inria.fr> <87fsiujwzo.fsf@gnu.org> In-Reply-To: <87fsiujwzo.fsf@gnu.org> --------------CWlN6Dx403tuLcg6YEJPHBn2 Content-Type: multipart/mixed; boundary="------------OGyN1Qa7DXmUwPCbmSdGJxTl" --------------OGyN1Qa7DXmUwPCbmSdGJxTl Content-Type: multipart/alternative; boundary="------------zKqmxUGRaK7cHHQjLa0snekO" --------------zKqmxUGRaK7cHHQjLa0snekO Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 DQpPbiAyMS0wNy0yMDIyIDE3OjM5LCBMdWRvdmljIENvdXJ0w6hzIHdyb3RlOg0KPj4gQWx0 ZXJuYXRpdmVseToNCj4+DQo+PiA0LiBEbyB0aGUgd2FpdHBpZCBpbiBhIHNlcGFyYXRlIHRo cmVhZCAobmVlZHMgd29yay1hcm91bmQgZm9yIHRoZQ0KPj4gbXVsdGktdGhyZWFkZWQgZm9y ayBwcm9ibGVtLCBwcm9iYWJseSBDIHRoaW5ncz8gT3IgbW9kaWZ5aW5nIEd1aWxlIGFuZA0K Pj4gbWF5YmUgZ2xpYmMgdG8gYXZvaWQgYXN5bmMtdW5zYWZlIHRoaW5ncyBvciBtYWtlIG1v cmUgdGhpbmdzDQo+PiBhc3luYy1zYWZlIG9yIHdoYXRldmVyIHRoZSBhcHByb3ByaWF0ZSAu Li4tc2FmZSBpcyBoZXJlLikNCj4gRm9yIHNoZXBoZXJkLCBtdWx0aXRocmVhZGluZyBpcyBu b3QgYW4gb3B0aW9uIGR1ZSB0byB0aGUgc2VtYW50aWNzIG9mDQo+IGZvcmsgaW4gdGhlIHBy ZXNlbmNlIG9mIHRocmVhZHMuDQoNCiBGcm9tIHdoYXQgSSd2ZSByZWFkLCBtdWx0aS10aHJl YWRlZCBmb3JrIGlzIHNhZmUgYXMgbG9uZyBhcyB5b3UgZG8gYW4gDQpleGVjICdpbW1lZGlh dGVseScgYWZ0ZXJ3YXJkcywgd2l0aG91dCBkb2luZyB0aGluZ3MgbGlrZSB0YWtpbmcgbG9j a3Mgb3IgDQphbGxvY2F0aW5nIG1lbW9yeSB3aXRoIG1hbGxvYyBpbi1iZXR3ZWVuIHRoZSBm b3JrIGFuZCBleGVjLiBJIGRvbid0IA0KdGhpbmsgaXQncyBwb3NzaWJsZSB0byBkbyB0aGF0 IGluIEd1aWxlIGNvZGUsIGJ1dCB0aGF0J3Mgd2hhdCB0aGUgQyANCnRoaW5ncyBhcmUgZm9y Lg0KDQpHcmVldGluZ3MsDQpNYXhpbWUuDQo= --------------zKqmxUGRaK7cHHQjLa0snekO Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


On 21-07-2022 17:39, Ludovic Court=C3=A8= s wrote:
Alternatively:

4. Do the waitpid in a separate thread (needs work-around for the
multi-threaded fork problem, probably C things? Or modifying Guile and
maybe glibc to avoid async-unsafe things or make more things
async-safe or whatever the appropriate ...-safe is here.)
For shepherd, multithreading=
 is not an option due to the semantics of
fork in the presence of threads.

From what I've read, multi-threaded fork is safe as long as you do an exec 'immediately' afterwards, without doing things like taking locks or allocating memory with malloc in-between the fork and exec. I don't think it's possible to do that in Guile code, but that's what the C things are for.

Greetings,
Maxime.
--------------zKqmxUGRaK7cHHQjLa0snekO-- --------------OGyN1Qa7DXmUwPCbmSdGJxTl Content-Type: application/pgp-keys; name="OpenPGP_0x49E3EE22191725EE.asc" Content-Disposition: attachment; filename="OpenPGP_0x49E3EE22191725EE.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- xjMEX4ch6BYJKwYBBAHaRw8BAQdANPb/d6MrGnGi5HyvODCkBUJPRjiFQcRU5V+m xvMaAa/NL01heGltZSBEZXZvcyA8bWF4aW1lLmRldm9zQHN0dWRlbnQua3VsZXV2 ZW4uYmU+wpAEExYIADgWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCX4ch6AIbAwUL CQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRBJ4+4iGRcl7japAQC3opZ2KGWzWmRc /gIWSu0AAcfMwyinFEEPa/QhUt2CogD/e2RdF4CYAgaRHJJmZ9WU7piKbLZ7llB4 LzgezVDHggzNJU1heGltZSBEZXZvcyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5iZT7C kAQTFggAOBYhBMHzPuIMUo/bfdcBH0nj7iIZFyXuBQJf56ycAhsDBQsJCAcDBRUK CQgLBRYCAwEAAh4BAheAAAoJEEnj7iIZFyXujpQBAKV1SwDDl4f24rXciDlB9L8W ycZt30CgbewMSRQk4mvbAP9dFMbVVixYBd6C8cfhR+NsOBGiOJnQABlUmgNuqGFJ Dc44BF+HIegSCisGAQQBl1UBBQEBB0BOlzIWiJzgobMF6/cqwLaLk7jIcFSZ++c0 k9cCNT6YXwMBCAfCeAQYFggAIBYhBMHzPuIMUo/bfdcBH0nj7iIZFyXuBQJfhyHo AhsMAAoJEEnj7iIZFyXuMr0BAJc8cl5PGvVmVuSQVKjleNl4DK1/XAaPAYPe34AE fZJPAP9IqLCQhH/FeJanHqBP8gNdGNI2qn8RnnLVfRJgUjZ1BA=3D=3D =3DOVqp -----END PGP PUBLIC KEY BLOCK----- --------------OGyN1Qa7DXmUwPCbmSdGJxTl-- --------------CWlN6Dx403tuLcg6YEJPHBn2-- --------------Ty043N35gq77RkR1INOJ99e1 Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYve8awUDAAAAAAAKCRBJ4+4iGRcl7van AP0Xg+HG+QT99F1vto9eoERi1hWfPMCIpt9JKHPjm7pRDQD/eQi1hEP9TpxiynsXaov8VZQDV1S8 RT4Oitu+jRcE/As= =/faJ -----END PGP SIGNATURE----- --------------Ty043N35gq77RkR1INOJ99e1-- From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 12 03:36:16 2022 Received: (at control) by debbugs.gnu.org; 12 Nov 2022 08:36:16 +0000 Received: from localhost ([127.0.0.1]:47269 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1otlzs-0008S8-2S for submit@debbugs.gnu.org; Sat, 12 Nov 2022 03:36:16 -0500 Received: from eggs.gnu.org ([209.51.188.92]:39540) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1otlzp-0008Rs-QQ for control@debbugs.gnu.org; Sat, 12 Nov 2022 03:36:14 -0500 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 ) id 1otlzk-0001Nr-Jp for control@debbugs.gnu.org; Sat, 12 Nov 2022 03:36:08 -0500 Received: from 2a02-8429-81d2-3d01-94c9-8097-ea5c-2774.rev.sfr.net ([2a02:8429:81d2:3d01:94c9:8097:ea5c:2774] helo=meije) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1otlzk-0002CK-2i for control@debbugs.gnu.org; Sat, 12 Nov 2022 03:36:08 -0500 Date: Sat, 12 Nov 2022 09:36:05 +0100 Message-Id: <87leog603u.fsf@meije.mail-host-address-is-not-set> To: control@debbugs.gnu.org From: Mathieu Othacehe Subject: control message for bug #58926 X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.9 (--) merge 58926 56674 quit From unknown Sun Jun 15 10:55:34 2025 X-Loop: help-debbugs@gnu.org Subject: bug#56674: [Shepherd] Use of =?UTF-8?Q?=E2=80=98waitpid=E2=80=99,_?= =?UTF-8?Q?=E2=80=98system*=E2=80=99,?= etc. in service code can cause deadlocks Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Sun, 13 Nov 2022 23:17:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56674 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 56674@debbugs.gnu.org Received: via spool by 56674-submit@debbugs.gnu.org id=B56674.166838140820883 (code B ref 56674); Sun, 13 Nov 2022 23:17:01 +0000 Received: (at 56674) by debbugs.gnu.org; 13 Nov 2022 23:16:48 +0000 Received: from localhost ([127.0.0.1]:48606 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ouMDX-0005Qk-Da for submit@debbugs.gnu.org; Sun, 13 Nov 2022 18:16:47 -0500 Received: from eggs.gnu.org ([209.51.188.92]:45936) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ouMDW-0005QZ-11 for 56674@debbugs.gnu.org; Sun, 13 Nov 2022 18:16:47 -0500 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 ) id 1ouMDQ-0005h2-Q8 for 56674@debbugs.gnu.org; Sun, 13 Nov 2022 18:16:40 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=I09ow4oAWCVBDXAQDdLKwhFnVAbuXwdPYh0rtdJLaJ0=; b=MMX8nd+XTEN3jU76n90U lfCCTYzy8luBzCF8s6oR/N/TYx9k/OC1L5JoBmVxzX0nARbmf4O8uVksEyU9Ag//6rNpXcZBGIjrk gBifgcaEM2Vmi7cGl3XWOTebGL1vI8pjZkTu9Tlzc2m3wT4nZor0t6mjoxWpcEXKXnz31U+LQnVIK wkobwrq+WxzI7qcPtYCIpxgKrRURq2B5Q0Kqn1O0WYWJMBCaHHNWjeQFOBhMKdRx7BctqUiA4uNxX bTJReTqia57fwqlI5Hr9ewX+1XaMO2JVSQMru8fYtM2h8Iywl+D5EME0qBtQxWTBuOpAtHaTyrsjo m+Q9d66sZinyEg==; Received: from 91-160-117-201.subs.proxad.net ([91.160.117.201] helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ouMDQ-0001sS-E2 for 56674@debbugs.gnu.org; Sun, 13 Nov 2022 18:16:40 -0500 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <8735evpipv.fsf@inria.fr> Date: Mon, 14 Nov 2022 00:16:38 +0100 In-Reply-To: <8735evpipv.fsf@inria.fr> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'s message of "Wed, 20 Jul 2022 23:39:08 +0200") Message-ID: <87o7tabg2x.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi, Ludovic Court=C3=A8s skribis: > 1. In the best case, shepherd (as of 0.9.1) is stuck while =E2=80=98sys= tem*=E2=80=99 > is in =E2=80=98waitpid=E2=80=99 waiting for child process completion= (=E2=80=9Cstuck=E2=80=9D as > in: doesn=E2=80=99t do anything, not even answering =E2=80=98herd=E2= =80=99 requests or > inetd connections.) > > 2. I don=E2=80=99t think that can happen with =E2=80=98system*=E2=80=99= (because it=E2=80=99s in C), > but generally speaking, there=E2=80=99s a possibility that shepherd= =E2=80=99s event > loop will handle child process termination before some other > user-made =E2=80=98waitpid=E2=80=99 call does. > > Anyway, that=E2=80=99s a bad situation. > > So I can think of several ways to address it: > > 1. Change the nginx service =E2=80=98stop=E2=80=99 method to just > (make-kill-destructor), which should work just as well as invoking > =E2=80=9Cnginx -s stop=E2=80=9D. > > 2. Have Shepherd provide a replacement for =E2=80=98system*=E2=80=99. These fresh Shepherd commits install a non-blocking =E2=80=98system*=E2=80= =99 replacement: 975b0aa service: Provide a non-blocking replacement of 'system*'. 039c7a8 service: Spawn a fiber responsible for process monitoring. We=E2=80=99ll have to do more testing and probably go for a 0.9.3 release s= oon. Protip: you can test the latest shepherd with: --8<---------------cut here---------------start------------->8--- (operating-system ;; =E2=80=A6 (essential-services (modify-services (operating-system-default-essential-services this-operating-system) (shepherd-root-service-type config =3D> (shepherd-configuration (shepherd (package (inherit shepherd-0.9) (version "0.9.3pre") (source (git-checkout (url "https://git.savannah.gnu.org/git/shepherd= .git"))) (native-inputs (modify-inputs (package-native-inputs shepherd-0.9) (append autoconf automake help2man texinfo gnu-gettex= t)))))))))) --8<---------------cut here---------------end--------------->8--- Full example attached. Ludo=E2=80=99. --=-=-= Content-Type: text/plain; charset=utf-8 Content-Disposition: inline; filename=bare-bones.tmpl Content-Transfer-Encoding: quoted-printable Content-Description: the example ;; This is an operating system configuration template ;; for a "bare bones" setup, with no X11 display server. (use-modules (gnu) (guix) (guix git)) (use-service-modules networking ssh web vpn shepherd) (use-package-modules linux screen ssh admin autotools gettext man texinfo) (operating-system (host-name "komputilo") (timezone "Europe/Berlin") (locale "en_US.utf8") ;; Boot in "legacy" BIOS mode, assuming /dev/sdX is the ;; target hard disk, and "my-root" is the label of the target ;; root file system. (bootloader (bootloader-configuration (bootloader grub-bootloader) (targets '("/dev/sdX")))) ;; It's fitting to support the equally bare bones =E2=80=98-nographic=E2= =80=99 ;; QEMU option, which also nicely sidesteps forcing QWERTY. (kernel-arguments (list "console=3DttyS0,115200")) (file-systems (cons (file-system (device (file-system-label "my-root")) (mount-point "/") (type "ext4")) %base-file-systems)) ;; This is where user accounts are specified. The "root" ;; account is implicit, and is initially created with the ;; empty password. (users (cons (user-account (name "alice") (comment "Bob's sister") (group "users") ;; Adding the account to the "wheel" group ;; makes it a sudoer. Adding it to "audio" ;; and "video" allows the user to play sound ;; and access the webcam. (supplementary-groups '("wheel" "audio" "video"))) %base-user-accounts)) ;; Globally-installed packages. (packages (append (list screen strace) %base-packages)) (essential-services (modify-services (operating-system-default-essential-services this-operating-system) (shepherd-root-service-type config =3D> (shepherd-configuration (shepherd (package (inherit shepherd-0.9) (version "0.9.3pre") (source (git-checkout (url "https://git.savannah.gnu.org/git/shepherd= .git"))) (native-inputs (modify-inputs (package-native-inputs shepherd-0.9) (append autoconf automake help2man texinfo gnu-gettex= t))))))))) ;; Add services to the baseline: a DHCP client and ;; an SSH server. (services (append (list (service dhcp-client-service-type) (service nginx-service-type (nginx-configuration (server-blocks (list (nginx-server-configuration (listen '("80")) (server-name '("www.example.org= ")) (root "/srv/whatever")))))) (service wireguard-service-type (wireguard-configuration (addresses (list "10.0.0.2/24")) (dns '("10.0.0.50")))) ;does not exit (service openssh-service-type (openssh-configuration (openssh openssh-sans-x) (port-number 2222)))) %base-services))) --=-=-=-- From unknown Sun Jun 15 10:55:34 2025 X-Loop: help-debbugs@gnu.org Subject: bug#56674: bug#58926: Shepherd becomes unresponsive after an interrupt Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Mon, 14 Nov 2022 16:33:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56674 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 56674@debbugs.gnu.org Cc: Mathieu Othacehe , 58926@debbugs.gnu.org Received: via spool by 56674-submit@debbugs.gnu.org id=B56674.166844357218499 (code B ref 56674); Mon, 14 Nov 2022 16:33:02 +0000 Received: (at 56674) by debbugs.gnu.org; 14 Nov 2022 16:32:52 +0000 Received: from localhost ([127.0.0.1]:50795 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oucOC-0004oE-Am for submit@debbugs.gnu.org; Mon, 14 Nov 2022 11:32:52 -0500 Received: from eggs.gnu.org ([209.51.188.92]:39694) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oucOB-0004nx-2m; Mon, 14 Nov 2022 11:32:51 -0500 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 ) id 1oucO3-0001GE-4L; Mon, 14 Nov 2022 11:32:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=4ITMDdwLRrONPIJ4+TLF/aJWUdttfliJXRHIuCOqVZw=; b=haDCh+rMxku/qDsRqBrq Fufly6h1PZmOCfYlKdD4hFnI22C9skwRQIFdz1VKIsIguAeRBQsddIFLo3GcvAb8ppjmppA2xrOUR zKF8S+4FJxDJRIl+IC/LdsFmaaPph6WMv5N9koUbEPajW8QScgLtH0vEF1G8ftY+FVRwnA5C1aMYm 9aYkRUhk7s1dCmHyLqwUQR4O0Wc6Zxht2i8cRgNE9fEAOypeCI0mlMoJe/S4GvEEsyj2XhrE/Zlt6 +GB1FCzcXv2AyzLOQUH6icyPEddOWP2ldmRWC22GuBbib8J6RE1P2XoXaItOR0uGUg41bxQmbeeig f5nNNMCNs6sjhg==; Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oucNy-0004KX-40; Mon, 14 Nov 2022 11:32:39 -0500 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <8735evpipv.fsf@inria.fr> <87o7tabg2x.fsf@gnu.org> Date: Mon, 14 Nov 2022 17:32:35 +0100 In-Reply-To: <87o7tabg2x.fsf@gnu.org> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'s message of "Mon, 14 Nov 2022 00:16:38 +0100") Message-ID: <87wn7xo5ss.fsf_-_@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hello! Ludovic Court=C3=A8s skribis: > These fresh Shepherd commits install a non-blocking =E2=80=98system*=E2= =80=99 replacement: > > 975b0aa service: Provide a non-blocking replacement of 'system*'. > 039c7a8 service: Spawn a fiber responsible for process monitoring. > > We=E2=80=99ll have to do more testing and probably go for a 0.9.3 release= soon. Shepherd commit ada88074f0ab7551fd0f3dce8bf06de971382e79 passes my tests. It definitely solves the wireguard example and similar things (uses of =E2=80=98system*=E2=80=99 in service constructors/destructors); I = can=E2=80=99t tell for sure about nginx because I haven=E2=80=99t been able to reproduce it in= a VM. I=E2=80=99m interested in ways to reproduce it. It does look like we could go with 0.9.3 real soon now. Ludo=E2=80=99.