On 9/14/22 08:19, Fengqi Li wrote:
> When segmentation fault occured in ovn-northd, monitor will try to
> restart the ovn-northd daemon process every 10s.
> Assume the following scenarios: There is a segmentation fault and
> the ovn-northd daemon process doen not restart properly everytime.
> Nws fds are created each time the ovn-northd daemon process is
> restarted by the monitor process, but old fds(fd[1]) ownered by
> the monitor process was not closed properly. One pipe leak for
> each restart of the ovn-northd daemon process. After a long time
> the OS's pipe was exhausted.
Hi, Fengqi Li. Thanks for the patch!
> My ovs version is 2.13.2 and I checked the master branch.It also
> have the same problem.
Please add the following Fixes tag instead of the line above:
Fixes: e2ed6fbeb18c ("fatal-signal: Catch SIGSEGV and print backtrace.")
>
> Signed-off-by: Fengqi Li <[email protected]>
> ---
> lib/daemon-unix.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/lib/daemon-unix.c b/lib/daemon-unix.c
> index 52f3d4bc6..3e595687f 100644
> --- a/lib/daemon-unix.c
> +++ b/lib/daemon-unix.c
> @@ -412,6 +412,7 @@ monitor_daemon(pid_t daemon_pid)
> }
> last_restart = time(NULL);
>
> + close(daemonize_fd);
I would move this higher as we don't need to hold this file descriptor
for 10 extra seconds. We can close it right after log_received_backtrace.
And it's better to set it to -1 right after closing to make sure it will
not be used before it actually set.
Best regards, Ilya Maximets.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev