Skip to content
This repository has been archived by the owner on Mar 17, 2021. It is now read-only.

fence_virtd can't be killed cleanly #10

Closed
andyprice opened this issue Jan 15, 2018 · 3 comments
Closed

fence_virtd can't be killed cleanly #10

andyprice opened this issue Jan 15, 2018 · 3 comments

Comments

@andyprice
Copy link
Contributor

Since commit 2c909b7, control doesn't return to the dispatch loop in main() after select() returns with EINTR:

while (run && lp->dispatch(listener_ctx, NULL) >= 0);

The signal handler zeroes run when SIGINT, SIGTERM or SIGQUIT is caught but now it never gets checked after the first time because the loop now continues inside ->dispatch on EINTR.

This is causing fence_virtd.service to take 1.5 minutes to stop after SIGTERM is sent as that is the time limit before it gets sent a SIGKILL.

Tested with the multicast listener.

@andyprice
Copy link
Contributor Author

Thanks!

@ryan-mccabe
Copy link
Contributor

Thanks for the catch. Glad at least somebody is running off master.

@andyprice
Copy link
Contributor Author

I found the bug in rawhide but I did check master before I filed the issue.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants