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

Junegunn Choi resolved HBASE-29267.
-----------------------------------
    Fix Version/s: 2.7.0
                   3.0.0-beta-2
                   2.5.15
                   2.6.6
       Resolution: Fixed

Thank you [~minwoo.kang] for the contribution!

Pushed to the following branches:

* master
* branch-3
* branch-2
* branch-2.6
* branch-2.5


> 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
>             Fix For: 2.7.0, 3.0.0-beta-2, 2.5.15, 2.6.6
>
>
> 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