Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.10.0
-
None
-
Ubuntu 14.04 LTS, Perl 5.18
Description
The Perl ForkingServer sets SIGCHLD to be ignores so that the forks can be automatically reaped, since the ForkingServer doesn't care about the child exit code.
The fix for THRIFT-3848 was incomplete. It needs to reset the signal handler in the child to use a default SIGCHLD handler so any thrift handler implementation relying on SIGCHLD will execute properly.
Also due to the fact that SIGCHLD is ignored in ForkingServer, the _collectChildren and call to waitpid() are unnecessary and can be removed, along with the children hash, from _parent().
Attachments
Issue Links
- is broken by
-
THRIFT-3848 As an implementer of a perl socket server, I do not want to have to remember to ignore SIGCHLD for it to work properly
- Closed
- links to