GitHub user srowen opened a pull request:
https://github.com/apache/spark/pull/13973
[SPARK-16182] [CORE] Utils.scala -- terminateProcess() should call
Process.destroyForcibly() if and only if Process.destroy() fails
## What changes were proposed in this pull request?
Utils.terminateProcess should `destroy()` first and only fall back to
`destroyForcibly()` if it fails. It's kind of bad that we're force-killing
executors -- and only in Java 8. See JIRA for an example of the impact: no
shutdown
While here: `Utils.waitForProcess` should use the Java 8 method if
available instead of a custom implementation.
## How was this patch tested?
Existing tests, which cover the force-kill case, and Amplab tests, which
will cover both Java 7 and Java 8 eventually. However I tested locally on Java
8 and the PR builder will try Java 7 here.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/srowen/spark SPARK-16182
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/spark/pull/13973.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #13973
----
commit 50ee5b6dd27ffbb92ef83ff81885f8f5a04d4595
Author: Sean Owen <[email protected]>
Date: 2016-06-29T11:57:40Z
Utils.terminateProcess should destroy() first and only fall back to
destroyForcibly() if it fails. Utils.waitForProcess should use Java 8 method if
available.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]