[SPARK-50386][SQL] Improve SparkFatalException Propagation when OutOfMemoryError occurs on BroadcastExchangeExec building small table to broadcast #48925
+87
−14
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this pull request?
When
BroadcastHashJoin
builds small table to broadcast byBroadcastExchangeExec
, ifOutOfMemoryError
has occurred on driver,BroadcastExchangeExec
throwsSparkFatalException
which wrapsSparkException
. However,SparkException
' scause
property may come asnull
by missing actual cause which isjava.lang.OutOfMemoryError: Java heap space
in following example.Actual cause info
is also useful to propagateThrowable.getCause / getCause.*
properties to clients. Repro test case has been added.Before Fix:
After Fix:
Why are the changes needed?
SparkException
' scause
property may come asnull
by missing actual cause which isjava.lang.OutOfMemoryError: Java heap space
in above example.Actual cause info
is also useful to propagateThrowable.getCause / getCause.*
properties to clients.Does this PR introduce any user-facing change?
No
How was this patch tested?
Added new 2 UTs.
Was this patch authored or co-authored using generative AI tooling?
No