From: "Ludovic Courtès" <ludo@gnu.org>
To: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Cc: Maxime Devos <maximedevos@telenet.be>, 55898@debbugs.gnu.org
Subject: bug#55898: Services depending on new Shepherd features may fail until reboot
Date: Fri, 02 Sep 2022 11:10:45 +0200 [thread overview]
Message-ID: <87wnamxht6.fsf@gnu.org> (raw)
In-Reply-To: <87ilm69a7i.fsf@gmail.com> (Maxim Cournoyer's message of "Thu, 01 Sep 2022 15:16:33 -0400")
Hi Maxim,
Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>> Currently, new services don’t fail to run: we arrange so that new
>> services always “work”, whether they’re talking to an old shepherd or a
>> new one. The user experience (bugs aside) should be good: services are
>> always reloaded.
>
> This depends on how the services are written, and how much care to this
> edge case their author put into writing it. I know the Jami service
> type won't run without Shepherd >= 0.9.0, and the solution is not
> obvious (I'm suspecting sleep* from (guix build dbus-service) should use
> regular sleep when shepherd is < 0.9.0.).
Ah, that’s an exception then, and this should be avoided IMO. :-)
Usually, the Shepherd’s API is backward compatible, so one can normally
leave services unchanged. It’s only when you want to take advantage of
the new features that you have to resort to conditionals.
But then more complex services like Jami or childhurd were more likely
to hit edge cases with the switch to Fibers.
>> IIUC, in the model you propose, we’d sacrifice this, by admitting that
>> in some cases we just won’t load services live and instead tell users to
>> reboot; the benefit would be cleaner service code.
>>
>> It’s a tradeoff; the cost/benefit ratio is not obvious to me.
>
> Having a simple way to cleanly mark a service as "requiring Shepherd
> 0.9.X" would provide good value in my opinion, for when adding backward
> compatibility is too difficult or not desirable for any reason (such as
> causing long 'hangs' while busy-waiting for a process to start in older
> shepherds).
Right, I agree it’d be useful in those cases. (Though having to
busy-wait is not a valid reason IMO: it’s a sign we should provide the
proper abstraction to avoid busy waiting.)
I don’t have a clear idea on how to implement it now, but we should keep
that in mind.
Thanks,
Ludo’.
prev parent reply other threads:[~2022-09-02 9:19 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-11 5:53 bug#55898: jami service failing following 'guix deploy' update Maxim Cournoyer
2022-06-11 14:51 ` Maxime Devos
2022-06-14 19:40 ` Maxim Cournoyer
2022-06-24 17:52 ` Maxim Cournoyer
2022-06-24 18:01 ` bug#55898: jami service failing following reconfigure Maxim Cournoyer
2022-07-06 21:38 ` bug#55898: jami service failing following 'guix deploy' update Maxim Cournoyer
2022-07-06 22:01 ` Maxim Cournoyer
2022-07-20 21:19 ` bug#55898: Services depending on new Shepherd features may fail until reboot Ludovic Courtès
2022-07-21 4:10 ` Maxim Cournoyer
2022-08-29 13:43 ` Ludovic Courtès
2022-08-29 21:06 ` Maxim Cournoyer
2022-08-30 7:33 ` Ludovic Courtès
2022-08-30 9:35 ` Maxime Devos
2022-08-30 13:50 ` Ludovic Courtès
2022-09-01 13:18 ` Maxim Cournoyer
2022-09-01 13:28 ` Maxime Devos
2022-09-01 13:51 ` Ludovic Courtès
2022-09-01 19:16 ` Maxim Cournoyer
2022-09-02 9:10 ` Ludovic Courtès [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87wnamxht6.fsf@gnu.org \
--to=ludo@gnu.org \
--cc=55898@debbugs.gnu.org \
--cc=maxim.cournoyer@gmail.com \
--cc=maximedevos@telenet.be \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.