hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Miklos Szegedi (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HADOOP-15372) Race conditions and possible leaks in the Shell class
Date Sat, 07 Apr 2018 01:44:00 GMT

     [ https://issues.apache.org/jira/browse/HADOOP-15372?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Miklos Szegedi updated HADOOP-15372:
------------------------------------
    Description: 
YARN-5641 introduced some cleanup code in the Shell class. It has a race condition. {{Shell.

runCommand()}} can be called while/after {{Shell.getAllShells()}} returned all the shells
to be cleaned up. This new thread can avoid the clean up, so that the process held by it
can be leaked causing leaked localized files/etc.

I see another issue as well. {{Shell.runCommand()}} has a finally block with a {{

process.destroy();}} to clean up. However, the try catch block does not cover all instructions
after the process is started, so for example we can exit the thread and leak the process,
if {{

timeOutTimer.schedule(timeoutTimerTask, timeOutInterval);}} causes an exception.

  was:
YARN-5641 introduced some cleanup code in the Shell class. It has a race condition. {{Shell.

runCommand()}} can be called while/after {{Shell.getAllShells()}} returned all the shells
to be cleaned up. This new thread can avoid the clean up, so that the process held by it
can be leaked causing leaked localized files/etc.

I also see an unrelated issue as well. {{Shell.runCommand()}} has a finally block with a {{

process.destroy();}} to clean up. However, the try catch block does not cover all instructions
after the process is started, so for example we can exit the thread and leak the process,
if {{

timeOutTimer.schedule(timeoutTimerTask, timeOutInterval);}} causes an exception.


> Race conditions and possible leaks in the Shell class
> -----------------------------------------------------
>
>                 Key: HADOOP-15372
>                 URL: https://issues.apache.org/jira/browse/HADOOP-15372
>             Project: Hadoop Common
>          Issue Type: Bug
>    Affects Versions: 2.10.0, 3.2.0
>            Reporter: Miklos Szegedi
>            Priority: Minor
>
> YARN-5641 introduced some cleanup code in the Shell class. It has a race condition.
{{Shell.
> runCommand()}} can be called while/after {{Shell.getAllShells()}} returned all the shells
to be cleaned up. This new thread can avoid the clean up, so that the process held by it
can be leaked causing leaked localized files/etc.
> I see another issue as well. {{Shell.runCommand()}} has a finally block with a {{
> process.destroy();}} to clean up. However, the try catch block does not cover all instructions
after the process is started, so for example we can exit the thread and leak the process,
if {{
> timeOutTimer.schedule(timeoutTimerTask, timeOutInterval);}} causes an exception.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org


Mime
View raw message