Repository: spark
Updated Branches:
  refs/heads/master 14a32a647 -> 9df08e218


[SPARK-22454][CORE] ExternalShuffleClient.close() should check clientFactory 
null

## What changes were proposed in this pull request?

`ExternalShuffleClient.close()` should check `clientFactory` null. otherwise it 
will throw NPE sometimes:
```
17/11/06 20:08:05 ERROR Utils: Uncaught exception in thread main
java.lang.NullPointerException
        at 
org.apache.spark.network.shuffle.ExternalShuffleClient.close(ExternalShuffleClient.java:152)
        at org.apache.spark.storage.BlockManager.stop(BlockManager.scala:1407)
        at org.apache.spark.SparkEnv.stop(SparkEnv.scala:89)
        at 
org.apache.spark.SparkContext$$anonfun$stop$11.apply$mcV$sp(SparkContext.scala:1849)
```

## How was this patch tested?
manual tests

Author: Yuming Wang <[email protected]>

Closes #19670 from wangyum/SPARK-22454.


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/9df08e21
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/9df08e21
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/9df08e21

Branch: refs/heads/master
Commit: 9df08e218cfd4dd91bc407b98528b74f452f34f8
Parents: 14a32a6
Author: Yuming Wang <[email protected]>
Authored: Tue Nov 7 08:30:58 2017 +0000
Committer: Sean Owen <[email protected]>
Committed: Tue Nov 7 08:30:58 2017 +0000

----------------------------------------------------------------------
 .../org/apache/spark/network/shuffle/ExternalShuffleClient.java | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/9df08e21/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleClient.java
----------------------------------------------------------------------
diff --git 
a/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleClient.java
 
b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleClient.java
index 510017f..7ed0b6e 100644
--- 
a/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleClient.java
+++ 
b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleClient.java
@@ -148,6 +148,9 @@ public class ExternalShuffleClient extends ShuffleClient {
   @Override
   public void close() {
     checkInit();
-    clientFactory.close();
+    if (clientFactory != null) {
+      clientFactory.close();
+      clientFactory = null;
+    }
   }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to