Re: [systemd-devel] Shutdown behavior follow up

2020-02-22 Thread Andrei Borzenkov
22.02.2020 22:50, jay.bur...@fujitsu.com пишет:
> All,
> 
> Referring to my last email regarding the systemd shutdown behavior.  I am 
> working on the assumption that the idea of honoring the first shutdown request
> is the preferred way to go. If not this email can be ignored.
> 
> I have reproduced the same behavior using a fedora 31 machine with systemd 
> v243. I have a proposed fix, including source file change, patch file and 
> sample service
> which can be used to both show the problem and show the fix. I am not sure if 
> this is the right forum to attach those files.

Create pull request on guthub:

https://github.com/systemd/systemd


> 
> If this is the desired behavior, I am wondering  what are my next steps to 
> get this into the next systemd delivery. I have not done this before so I am 
> looking for some instruction?
> 
> Thanks in advance,
> -Jay
> 
> -Original Message-
> From: Lennart Poettering  
> Sent: Monday, January 13, 2020 4:33 AM
> To: Burger, Jay 
> Cc: systemd-devel@lists.freedesktop.org; Dang, James 
> ; Berger, Daniel ; 
> Mahabaleshwar, Niranjan 
> Subject: Re: [systemd-devel] Shutdown behavior
> 
> On Fr, 10.01.20 10:56, Jay Burger (jay.bur...@us.fujitsu.com) wrote:
> 
>> I made the same type of change in the emergency_action() function in v232.
>>
>> Question 1: Would this be considered a problem with the design, 
>> needing an upstream fix? Or would this be considered a particular user 
>> issue, to be fixed with an isolated patch, like we have done? If the 
>> latter is the answer to this then would this be considered a legit fix 
>> for our purposes? Or is there a better way to handle this use case? I 
>> know fixing my user services to not fail on the shutdown would be 
>> preferable, but pulling teeth is not in my skillset.
> 
> Hmm, so what is the expected behaviour here? If one service requires a reboot 
> and another a poweroff, and one is triggered first and the other second, then 
> I can at least think of four policies that make
> sense:
> 
> 1. first requested always wins
> 
> 2. last requested always wins
> 
> 3. reboot is the positive outlook, and thus always wins
> 
> 4. poweorff is the positive outlook, and thus always wins.
> 
> Unless I am mistaken we currently implement policy 2. Which one would you 
> prefer? Can you make a good case why it would be better in the general case?
> 
> I have the suspicion we should just adopt the best possible policy here and 
> stick to it and not make things needlessly configurable. But it's a matter of 
> discussion which one that is...
> 
>> Question 2: I recently found a case where a poweroff shutdown was 
>> triggered while the system was in the "starting" state and a service 
>> failure occurred during the shutdown. In this case my logic change did 
>> not prevent the shutdown from changing to a reboot. This check of the 
>> manager_state found the state was still "starting" and the poweroff 
>> was again changed to a reboot. Is there a different logic path taken 
>> when in the starting state as opposed to the running state?
> 
> Not really, no.
> 
> Lennart
> 
> --
> Lennart Poettering, Berlin
> ___
> systemd-devel mailing list
> systemd-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/systemd-devel
> 

___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Shutdown Behavior

2020-01-14 Thread Jay Burger



Jay Burger  schrieb am 13.01.2020 um 17:36 in

Nachricht <9f4dc083-18f7-ba68-cc96-1d3c9492e...@us.fujitsu.com>:
...

Personally, I would think the initial shutdown should always be honored.
Unrealistic dramatized example: I have another emergency at Chernobyl
and need to power down my reactor. Oops some service failed
while in the shutdown state and the system just rebooted ? china syndrome.

Maybe consider looking at it as an elevation type of thing.
Lowest level ? reboot
higher level ? halt
highest level ? poweroff

...

Actually I don't think that one of the above is better than another: If you
want to reboot a remote system, and the system powers down instead, you may be
in trouble as you'll have to "visit" the machine to power it up again.

Ulrich

I agree, that would not be the best idea and would have to be left to
the application. The "elevation" concept was just a thought.
My two major concerns are:

1. Once the first shutdown command is underway always honor that.
2. The system state while shutting down should always be "stopping",
    no matter what system state the shutdown was triggered from.

I would actually prefer to not have any options - first shutdown cmd
wins and is taken to completion. After all there should not be that many
services trying to control how a system shuts down and if there are
then I would argue your system might be a little too complex.

-Jay




--

Subject: Digest Footer

___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.freedesktop.org_mailman_listinfo_systemd-2Ddevel&d=DwICAg&c=09aR81AqZjK9FqV5BSCPBw&r=eZr6O-2nRMo2rKM8r3uAkikeHaPdKjgl8fabX-Hs-ts&m=aHT4O0VbS7QqrPMUeXCxuLxYDh9qhFEaxzXt-prM39k&s=T4LXhnYYM8z-PJErKqJP8bNdfbbckZeaC9C3GlbTHB4&e=


--

End of systemd-devel Digest, Vol 117, Issue 23
**


___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Shutdown behavior

2020-01-13 Thread Jay Burger

On 1/13/20 7:12 AM, systemd-devel-requ...@lists.freedesktop.org wrote:

Send systemd-devel mailing list submissions to
systemd-devel@lists.freedesktop.org

To subscribe or unsubscribe via the World Wide Web, visit

https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.freedesktop.org_mailman_listinfo_systemd-2Ddevel&d=DwICAg&c=09aR81AqZjK9FqV5BSCPBw&r=eZr6O-2nRMo2rKM8r3uAkikeHaPdKjgl8fabX-Hs-ts&m=mta6UzqBrGnnB9FL0KCZXhSAre6pMLiXHGqBvJTxXoc&s=3kb3utxeE3bLsnPTvylgDdhJw1Lu_ypUHKgeOojrvA4&e=
or, via email, send a message with subject or body 'help' to
systemd-devel-requ...@lists.freedesktop.org

You can reach the person managing the list at
systemd-devel-ow...@lists.freedesktop.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of systemd-devel digest..."


Today's Topics:

1. Re:  Shutdown behavior (Dave Howorth)
2. Re:  reformat partition when device is in emergency mode
   (Belisko Marek)
3.  Antw: systemd.mount creating mount resource (What) for bind
   mounts (Ulrich Windl)
4.  Antw: Re: Q: "Start request repeated too quickly." for
   dependency (Ulrich Windl)
5.  Antw: reformat partition when device is in emergency mode
   (Ulrich Windl)
6.  Antw: Re:  Shutdown behavior (Ulrich Windl)
7.  Antw: Re: Antw: Re: Service fails to start with no log
   messages (Ulrich Windl)


--

Message: 1
Date: Mon, 13 Jan 2020 12:18:00 +
From: Dave Howorth 
To: systemd-devel@lists.freedesktop.org
Subject: Re: [systemd-devel] Shutdown behavior
Message-ID: <20200113121800.338bc...@acer-suse.lan>
Content-Type: text/plain; charset=US-ASCII

On Mon, 13 Jan 2020 11:32:37 +0100
Lennart Poettering  wrote:

On Fr, 10.01.20 10:56, Jay Burger (jay.bur...@us.fujitsu.com) wrote:


I made the same type of change in the emergency_action() function
in v232.

Question 1: Would this be considered a problem with the design,
needing an upstream fix? Or would this be considered a particular
user issue, to be fixed with an isolated patch, like we have done?
If the latter is the answer to this then would
this be considered a legit fix for our purposes? Or is there a
better way to handle this use case? I know fixing my user services
to not fail on the shutdown would be preferable, but pulling teeth
is not in my skillset.

Hmm, so what is the expected behaviour here? If one service requires a
reboot and another a poweroff, and one is triggered first and the
other second, then I can at least think of four policies that make
sense:

1. first requested always wins

2. last requested always wins

3. reboot is the positive outlook, and thus always wins

4. poweorff is the positive outlook, and thus always wins.

Unless I am mistaken we currently implement policy 2. Which one would
you prefer? Can you make a good case why it would be better in the
general case?

I have the suspicion we should just adopt the best possible policy
here and stick to it and not make things needlessly configurable. But
it's a matter of discussion which one that is...

Personally, I would think the initial shutdown should always be honored.
Unrealistic dramatized example: I have another emergency at Chernobyl
and need to power down my reactor. Oops some service failed
while in the shutdown state and the system just rebooted - china syndrome.

Maybe consider looking at it as an elevation type of thing.
Lowest level - reboot
higher level - halt
highest level - poweroff

I could see a useful option to allow an elevation of shutdown but not
a reduction and if a poweroff is the first trigger, period end of story.


Surely this is application-dependent? I can conceive of applications
that require reboot (or at least best efforts at it), and others that
require shutdown.

For the first, consider a system controlling something dangerous. If
the system is forced down by some watchdog, it most likely should
reboot and try again.

For the second, consider a system whose power is supplied via a UPS and
has just been informed the UPS is about to run out of power. Whatever
it does, it's going down and its best policy is likely to
shutdown/hibernate such that it can restart when power returns.

Is there not a case to at least provide a hook so that some
application-specific code can make the decision?

But certainly, I think that a service failing during shutdown should
not affect the outcome of that shutdown. Having some broken service
decide whether or not I can shut my machine down is ridiculous.


Question 2: I recently found a case where a poweroff shutdown was
triggered while the system was in the "starting" state and a
service failure occurred during the shutdown. In this case my logic
change did not prevent the shutdown from changing to a reboot. This
check of the manager_state found the state was still 

Re: [systemd-devel] Shutdown behavior

2020-01-13 Thread Dave Howorth
On Mon, 13 Jan 2020 11:32:37 +0100
Lennart Poettering  wrote:
> On Fr, 10.01.20 10:56, Jay Burger (jay.bur...@us.fujitsu.com) wrote:
> 
> > I made the same type of change in the emergency_action() function
> > in v232.
> >
> > Question 1: Would this be considered a problem with the design,
> > needing an upstream fix? Or would this be considered a particular
> > user issue, to be fixed with an isolated patch, like we have done?
> > If the latter is the answer to this then would
> > this be considered a legit fix for our purposes? Or is there a
> > better way to handle this use case? I know fixing my user services
> > to not fail on the shutdown would be preferable, but pulling teeth
> > is not in my skillset.  
> 
> Hmm, so what is the expected behaviour here? If one service requires a
> reboot and another a poweroff, and one is triggered first and the
> other second, then I can at least think of four policies that make
> sense:
> 
> 1. first requested always wins
> 
> 2. last requested always wins
> 
> 3. reboot is the positive outlook, and thus always wins
> 
> 4. poweorff is the positive outlook, and thus always wins.
> 
> Unless I am mistaken we currently implement policy 2. Which one would
> you prefer? Can you make a good case why it would be better in the
> general case?
> 
> I have the suspicion we should just adopt the best possible policy
> here and stick to it and not make things needlessly configurable. But
> it's a matter of discussion which one that is...

Surely this is application-dependent? I can conceive of applications
that require reboot (or at least best efforts at it), and others that
require shutdown.

For the first, consider a system controlling something dangerous. If
the system is forced down by some watchdog, it most likely should
reboot and try again.

For the second, consider a system whose power is supplied via a UPS and
has just been informed the UPS is about to run out of power. Whatever
it does, it's going down and its best policy is likely to
shutdown/hibernate such that it can restart when power returns.

Is there not a case to at least provide a hook so that some
application-specific code can make the decision?

But certainly, I think that a service failing during shutdown should
not affect the outcome of that shutdown. Having some broken service
decide whether or not I can shut my machine down is ridiculous.

> > Question 2: I recently found a case where a poweroff shutdown was
> > triggered while the system was in the "starting" state and a
> > service failure occurred during the shutdown. In this case my logic
> > change did not prevent the shutdown from changing to a reboot. This
> > check of the manager_state found the state was still "starting" and
> > the poweroff was again changed to a reboot. Is there a different
> > logic path taken when in the starting state as opposed to the
> > running state?  
> 
> Not really, no.
> 
> Lennart
> 
> --
> Lennart Poettering, Berlin
> ___
> systemd-devel mailing list
> systemd-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/systemd-devel
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] Shutdown behavior

2020-01-13 Thread Lennart Poettering
On Fr, 10.01.20 10:56, Jay Burger (jay.bur...@us.fujitsu.com) wrote:

> I made the same type of change in the emergency_action() function in v232.
>
> Question 1: Would this be considered a problem with the design, needing an
> upstream fix? Or would this be considered a particular user issue, to be 
> fixed with
> an isolated patch, like we have done? If the latter is the answer to this
> then would
> this be considered a legit fix for our purposes? Or is there a better way to 
> handle
> this use case? I know fixing my user services to not fail on the shutdown 
> would be
> preferable, but pulling teeth is not in my skillset.

Hmm, so what is the expected behaviour here? If one service requires a
reboot and another a poweroff, and one is triggered first and the
other second, then I can at least think of four policies that make
sense:

1. first requested always wins

2. last requested always wins

3. reboot is the positive outlook, and thus always wins

4. poweorff is the positive outlook, and thus always wins.

Unless I am mistaken we currently implement policy 2. Which one would
you prefer? Can you make a good case why it would be better in the
general case?

I have the suspicion we should just adopt the best possible policy
here and stick to it and not make things needlessly configurable. But
it's a matter of discussion which one that is...

> Question 2: I recently found a case where a poweroff shutdown was triggered
> while the system was in the "starting" state and a service failure occurred 
> during
> the shutdown. In this case my logic change did not prevent the shutdown from
> changing to a reboot. This check of the manager_state found the state was 
> still
> "starting" and the poweroff was again changed to a reboot. Is there a
> different logic
> path taken when in the starting state as opposed to the running state?

Not really, no.

Lennart

--
Lennart Poettering, Berlin
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel