Affects Version/s: None
Fix Version/s: None
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?