-
Notifications
You must be signed in to change notification settings - Fork 14
Ignore SIGURG at Start command #327
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
fcbf8cf
to
ae51d79
Compare
105367b
to
89d2ca1
Compare
9803cd4
to
fe6517a
Compare
fe6517a
to
ac386b1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi! Thank you for the patchset.
It's the review of the first commit.
- Add
Part of #...
to the commit message. - Strange that it was not necessary to make changes to the Watchdog tests (Are you sure you don't need them?)
- I don't like the fact that you have to start the signal processing from the outside. Would it make sense to add a callback that would be set externally and called by watchdog after the start of the application or something like that?
76b583e
to
f11c03c
Compare
3a542ad
to
75ca3d3
Compare
Check the idea, please. |
75ca3d3
to
40605b9
Compare
7c6e8fa
to
078c8ff
Compare
96bdfae
to
ea4ad6d
Compare
ea4ad6d
to
04eaab3
Compare
This patch fixes the signals handling strategy. Now there is only one handling loop for all signals. Added a field for controlling a state of the watchdog and a mutex for synchronizing the goroutines changing this field. Part of #325
This patch fixes the problem, which was occurring when the watchdog process received a signal SIGURG from go runtime[1][2] and passed it to the forked process before the exec call. Fixed by adding a call of the Ignore function. Receiving this signal is unexpected, cause tt doesn't work with sockets at all. [1] - https://go.googlesource.com/proposal/+/master/design/24543-non-cooperative-preemption.md [2] - golang/go#37942 Closes #325
04eaab3
to
0b78673
Compare
This patch fixes the problem, which was occurring when the watchdog
process received a signal SIGURG from go runtime[1][2] and passed it
to the forked process before the exec call. Fixed by adding a call of
the Ignore function. Receiving this signal is unexpected, cause tt
doesn't work with sockets at all.
Also this patch fixes the signals handling strategy. Now there is only
one handling loop for all signals. Added two fields for controlling
a state of the instance being watched and a mutex for synchronizing
the goroutines changing them.
[1] - https://go.googlesource.com/proposal/+/master/design/24543-non-cooperative-preemption.md
[2] - golang/go#37942
Closes #325