[ 
https://issues.apache.org/jira/browse/HBASE-29267?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated HBASE-29267:
-----------------------------------
    Labels: pull-request-available  (was: )

> Support shaded clients in Exception deserialization by prefixing shaded 
> package in IPCUtil
> ------------------------------------------------------------------------------------------
>
>                 Key: HBASE-29267
>                 URL: https://issues.apache.org/jira/browse/HBASE-29267
>             Project: HBase
>          Issue Type: New Feature
>            Reporter: Minwoo Kang
>            Assignee: Minwoo Kang
>            Priority: Minor
>              Labels: pull-request-available
>
> Currently, when an HBase server throws an exception, it sends the class name 
> of the exception to the client. The client then attempts to deserialize and 
> instantiate the exception class using this name.
> However, in the case of shaded clients, the original package names of 
> server-side exceptions may not match those available on the client side. As a 
> result, shaded clients fail to locate and load the corresponding exception 
> class. When this happens, the client falls back to treating the error as a 
> generic DoNotRetryIOException, which prevents proper handling and disables 
> retry logic—even for retryable exceptions.
> This issue becomes particularly visible during RegionServer rolling restarts. 
> If a RegionServer throws an exception, the shaded client misinterprets the 
> error and does not retry the request.
> To address this, we propose enhancing the logic in {{IPCUtil}} to detect when 
> the client is shaded. If so, the client should attempt to prefix the received 
> exception class name with the shaded package prefix when trying to load the 
> class. This would allow shaded clients to correctly deserialize exceptions 
> and apply proper retry behavior.
> This change would improve compatibility for shaded HBase clients, especially 
> in environments that require binary shading for dependency isolation.



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

Reply via email to