[jira] [Updated] (HADOOP-15372) Race conditions and possible leaks in the Shell class
[ https://issues.apache.org/jira/browse/HADOOP-15372?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Akira Ajisaka 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 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. > 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 >Assignee: Eric Badger >Priority: Minor > Attachments: HADOOP-15372.001.patch > > > 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-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org
[jira] [Updated] (HADOOP-15372) Race conditions and possible leaks in the Shell class
[ https://issues.apache.org/jira/browse/HADOOP-15372?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Eric Badger updated HADOOP-15372: - Attachment: HADOOP-15372.001.patch > 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 >Assignee: Eric Badger >Priority: Minor > Attachments: HADOOP-15372.001.patch > > > 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-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org
[jira] [Updated] (HADOOP-15372) Race conditions and possible leaks in the Shell class
[ 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-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org