jin xing created SPARK-24379:
--------------------------------

             Summary: BroadcastExchangeExec should catch SparkOutOfMemory and 
re-throw SparkFatalException, which wraps SparkOutOfMemory inside.
                 Key: SPARK-24379
                 URL: https://issues.apache.org/jira/browse/SPARK-24379
             Project: Spark
          Issue Type: Bug
          Components: SQL
    Affects Versions: 2.3.0
            Reporter: jin xing


After SPARK-22827, Spark won't fails the entire executor but only fails the 
task suffering SparkOutOfMemoryError. In current BroadcastExchangeExec, it's 
try-catch OutOfMemoryError. Think about below scenario:
 # SparkOutOfMemoryError(subclass of OutOfMemoryError) is thrown in 
scala.concurrent.Future;
 # SparkOutOfMemoryError is caught and a OutOfMemoryError is wrapped in 
SparkFatalException and re-thrown;
 # ThreadUtils.awaitResult catches SparkFatalException and a OutOfMemoryError 
is thrown;
 # The OutOfMemoryError will go to 
SparkUncaughtExceptionHandler.uncaughtException and Executor fails.

So it make more sense to catch SparkOutOfMemory and re-throw 
SparkFatalException, which wraps SparkOutOfMemory inside.



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

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

Reply via email to