Yang Jie created SPARK-58702:
--------------------------------

             Summary: Assign a name to the error condition 
_LEGACY_ERROR_TEMP_3033,3035-3037
                 Key: SPARK-58702
                 URL: https://issues.apache.org/jira/browse/SPARK-58702
             Project: Spark
          Issue Type: Sub-task
          Components: Spark Core
    Affects Versions: 5.0.0
            Reporter: Yang Jie


Convert the four remaining {{_LEGACY_ERROR_TEMP_*}} conditions in 
{{SparkCoreErrors}}' storage and shuffle group, continuing the cleanup under 
SPARK-37935.

Three get user-facing names; one becomes an internal error:

* {{_LEGACY_ERROR_TEMP_3033}} -> 
{{UNABLE_TO_REGISTER_WITH_EXTERNAL_SHUFFLE_SERVICE}} (SQLSTATE 58030)
* {{_LEGACY_ERROR_TEMP_3035}} -> {{SHUFFLE_BLOCK_MIGRATION_NOT_SUPPORTED}} 
(SQLSTATE 0A000)
* {{_LEGACY_ERROR_TEMP_3036}} -> {{SparkException.internalError(category = 
"STORAGE")}}, JSON entry deleted
* {{_LEGACY_ERROR_TEMP_3037}} -> {{LOCAL_BLOCK_DATA_NOT_FOUND}} (SQLSTATE 58030)

{{_3036}} gets no name because the condition cannot survive to a reader. It is 
thrown from the {{StreamCallbackWithID.onComplete}} that 
{{BlockManager.putBlockDataAsStream}} returns; {{TransportRequestHandler}} 
wraps the exception in a plain {{IOException}} and answers {{RpcFailure}} 
carrying only a stack-trace string, which the sender rebuilds as a 
{{RuntimeException}}. The condition, SQLSTATE and message parameters are gone 
before anyone sees them. {{NettyBlockRpcServer.receive}} already reports the 
same "store declined the block" outcome as an internal error when it handles 
the non-streaming {{UploadBlock}} message.

Two message defects are fixed along the way. {{_3035}} interpolated a 
{{ShuffleBlockResolver}} that overrides no {{toString}}, so it rendered an 
identity hash instead of the class name. {{_3033}} had a stray space before its 
colon.

This is the last batch of the {{_3021-3042}} cluster. {{_3028}} is left out on 
purpose: its builder is a bare {{<errorMsg>}} passthrough whose single call 
site both duplicates the {{taskSet.abort}} two lines above it and has its throw 
swallowed, so converting it needs a design decision of its own.




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to