You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "James E. King, III (JIRA)" <ji...@apache.org> on 2017/02/09 01:55:41 UTC
[jira] [Resolved] (THRIFT-4065) Document Perl ForkingServer signal
restriction imposed by THRIFT-3848 and remove unnecessary code
[ https://issues.apache.org/jira/browse/THRIFT-4065?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
James E. King, III resolved THRIFT-4065.
----------------------------------------
Resolution: Fixed
Fix Version/s: 0.11.0
Tested this in a couple different scenarios and it allows the handler's forked children to use SIGCHLD to fork if they need to.
> Document Perl ForkingServer signal restriction imposed by THRIFT-3848 and remove unnecessary code
> -------------------------------------------------------------------------------------------------
>
> Key: THRIFT-4065
> URL: https://issues.apache.org/jira/browse/THRIFT-4065
> Project: Thrift
> Issue Type: Bug
> Components: Perl - Library
> Affects Versions: 0.10.0
> Environment: Ubuntu 14.04 LTS, Perl 5.18
> Reporter: James E. King, III
> Assignee: James E. King, III
> Fix For: 0.11.0
>
>
> 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().
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)