On Tue, Aug 21, 2018 at 1:16 PM Daniel P. Berrangé <berrange(a)redhat.com>
wrote:
On Tue, Aug 14, 2018 at 11:27:34AM +0200, Christian Ehrhardt wrote:
> In cases where virProcessKillPainfully already reailizes that
> SIGTERM wasn't enough we are partially on a bad path already.
> Maybe the system is overloaded or having serious trouble to free and
> reap resources in time.
>
> In those case give the SIGKILL that was sent after 10 seconds some more
> time to take effect if force was set (only then we are falling back to
> SIGKILL anyway).
>
> Signed-off-by: Christian Ehrhardt <christian.ehrhardt(a)canonical.com>
> ---
> src/util/virprocess.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/util/virprocess.c b/src/util/virprocess.c
> index 46360cc051..dda8916284 100644
> --- a/src/util/virprocess.c
> +++ b/src/util/virprocess.c
> @@ -350,7 +350,7 @@ virProcessKillPainfullyDelay(pid_t pid, bool force,
unsigned int extradelay)
> {
> size_t i;
> int ret = -1;
> - unsigned int delay = 75 + (extradelay*5);
> + unsigned int delay = (force ? 200 : 75) + (extradelay*5);
> const char *signame = "TERM";
>
> VIR_DEBUG("vpid=%lld force=%d delay=%u", (long long)pid, force,
pid);
> @@ -358,7 +358,7 @@ virProcessKillPainfullyDelay(pid_t pid, bool force,
unsigned int extradelay)
> /* This loop sends SIGTERM, then waits a few iterations (10 seconds)
> * to see if it dies. If the process still hasn't exited, and
> * @force is requested, a SIGKILL will be sent, and this will
> - * wait up to 5 seconds more for the process to exit before
> + * wait up to 30 seconds more for the process to exit before
> * returning.
> *
> * An extra delay can be specified for cases that are expected to
clean
Reviewed-by: Daniel P. Berrangé <berrange(a)redhat.com>
Thanks, added to the v4 submission queue ...
--
Christian Ehrhardt
Software Engineer, Ubuntu Server
Canonical Ltd