Minwoo Kang created HBASE-29267: ----------------------------------- Summary: 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
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)