Subject: [bug#36404] [PATCH 2/5] gnu: Add machine type for deployment specifications.

From: Christopher Lemmer Webber <[email-masked]>
Date: Sun, 30 Jun 2019 08:34:38 -0400

Carlo Zancanaro writes:

> Hey Jakob/Chris,
>
> I can't comment on much of the deploy code, but I can help out with
> some stuff about the Shepherd.
>
> On Sun, Jun 30 2019, Jakob L. Kreuze wrote:
>>> I'm a bit unsure from the above code... I'm guessing one of two
>>> things
>>> is happening:
>>>
>>>  - Either it's starting services that haven't been started yet,
>>> but
>>>    leaving alone services that are running but which aren't
>>> "new"
>>>  - Or it's restarting services that are currently running
>>>
>>> Which is it?  And mind adding a comment explaining it?
>>
>> The former. I've intentionally avoided restarting services since
>> 'guix
>> system' warns that "many essential services cannot be meaningfully
>> restarted." (which is why 'guix system reconfigure' spits out "To
>> complete the upgrade, run 'herd restart SERVICE' to stop, upgrade,
>> and
>> restart each service that was not automatically restarted." (which
>> AFAIK
>> is always none of them)).
>
> There was discussion earlier this year around restarting services that
> are already running during a reconfigure[1]. I wonder if this problem
> is more worth solving if we're deploying to remote systems. I have a
> few patches in that issue to implement service restarting, but I
> didn't follow them up enough to get them into Guix.
>
> [1]: https://issues.guix.info/issue/33508

Wow!  This seems highly desireable, especially if, as you pointed out in
the issue, an update to nginx is pushed across the wire with a security
update... in that case, we'd want to restart that, too.

Jakob, do you mind checking out the issue above?  I think it shouldn't
block merging these patches but perhaps we should file an issue saying
that when the shepherd issue is merged, changes should be made to guix
deploy as well.  What do you think?

>>> By the way, is there anything about the dependency order in which
>>> services might need to be restarted to be considered? I'm honestly
>>> not
>>> sure.
>>
>> I'm not sure either. Would any Shepherd hackers out there care to
>> chime
>> in?
>
> The Shepherd will start any necessary dependencies in an appropriate
> order.
>
> Carlo

Ok, good to know!