-
Notifications
You must be signed in to change notification settings - Fork 137
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
Fatal error: signal 17 received but handler not on signal stack #52
Comments
Signal 17 - is SIGCHLD in Linux. waitpid() that is used in golang process.Wait() releases SIGCHLD from child process. goqt sets (probably) own set of signal handlers. But there is no handler for SIGCHLD in goqt signal handlers (as it said in error message). And this caused the program failed with unhandled SIGCHLD while SIGCHLD must be ignored in standard situations. I didn't found yet the way to fix this, but l'll continue th investigation. |
Found a workaround but not sure how to fix it in more correct way. The problem is in the SA_ONSTACK flag. It have to be set on SIGCHLD action for correct handling of SIGCHLD signal in process.Wait(). Workaround: /* void savesigchld() { import ( ` |
It seems that it is Qt problem. I found several bug reports related to Qt that Qt redefines the signal handlers (original handler is called by cascade) and loose some action flags during this job. Probably this issue is not related to goqt directly, but as workaround goqt could update sa_flags after Qt initialization for some commonly used system signals. |
goqt + go 1.9 + os.exec + fsnotify on Linux 64bit
Call to exec.Command(...).Run() fails on process.wait() with messages:
exec.Command(...).Start() works normally but Run() and Output() that calls to Wait() after Start() fails
Without goqt everything is ok.
Any Idea?
The text was updated successfully, but these errors were encountered: