Corner case exists in detecting Java process deaths that might lead to orphan
pipes processes lying around in memory
--------------------------------------------------------------------------------------------------------------------
Key: HADOOP-2719
URL: https://issues.apache.org/jira/browse/HADOOP-2719
Project: Hadoop Core
Issue Type: Bug
Components: pipes
Affects Versions: 0.16.0
Reporter: Devaraj Das
Priority: Minor
Fix For: 0.17.0
In HADOOP-2092, the child pipes process periodically pings the parent Java
process to find out whether it is alive. The ping cycle is 5 seconds. Consider
the following scenario:
1) The Java task dies at the beginning of the ping cycle
2) A new Java task starts and binds to the same port as the earlier Java task's
port
3) The pipes process wakes up and does a ping - it will still be successful
since the port number hasn't changed
This will lead to orphan processes lying around in memory. The detection of
parent process deaths can be made more reliable at least on Unix'ish platforms
by checking whether the parent process ID is 1, and if so exit. This will take
care of the most common platform that hadoop is run on. For non-unix platforms,
the existing ping mechanism can be retained. Thoughts?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.