[Patch] potential 100% cpu loop arround reinit_after_fork_pipe_handler()
Jeremy Allison
jra at samba.org
Tue Apr 24 17:06:09 UTC 2018
On Tue, Apr 24, 2018 at 11:28:05AM +0200, Stefan Metzmacher via samba-technical wrote:
> Hi,
>
> here's a small optimization to reinit_after_fork_pipe_handler().
> Once the pipe is disconnected we should unregister the fd event handler
> in order to avoid a 100% cpu loop.
>
> In practice this doesn't happen as the SIGTERM event handler will be
> called first, but due to a work in progress bug I was able to
> trigger that loop during private autobuilds...
>
> Please review and push:-)
LGTM. RB+
> From 4696d2109bb7ab88a47871f8ff4b8e6689c3aab4 Mon Sep 17 00:00:00 2001
> From: Stefan Metzmacher <metze at samba.org>
> Date: Thu, 22 Mar 2018 12:32:15 +0100
> Subject: [PATCH] s3:util: remove reinit_after_fork_pipe_handler before sending
> SIGTERM
>
> We should not keep the tevent_fd active when we sending us a SIGTERM,
> this is not a real problem, but due to a different bug I triggered
> a 100% cpu loop. I think it's safer to idle in that case instead
> of waisting a lot of energy.
>
> Signed-off-by: Stefan Metzmacher <metze at samba.org>
> ---
> source3/lib/util.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/source3/lib/util.c b/source3/lib/util.c
> index 5f786f9..394fa5f 100644
> --- a/source3/lib/util.c
> +++ b/source3/lib/util.c
> @@ -438,6 +438,7 @@ static void reinit_after_fork_pipe_handler(struct tevent_context *ev,
> * we have reached EOF on stdin, which means the
> * parent has exited. Shutdown the server
> */
> + TALLOC_FREE(fde);
> (void)kill(getpid(), SIGTERM);
> }
> }
> --
> 1.9.1
>
More information about the samba-technical
mailing list