[
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)