You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "huginn (Jira)" <ji...@apache.org> on 2026/09/16 14:22:00 UTC
[jira] [Commented] (HBASE-30393) Clear stale RPC response timestamps after responses complete
[ https://issues.apache.org/jira/browse/HBASE-30393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18116075#comment-18116075 ]
huginn commented on HBASE-30393:
--------------------------------
PR: https://github.com/apache/hbase/pull/8671
> Clear stale RPC response timestamps after responses complete
> ------------------------------------------------------------
>
> Key: HBASE-30393
> URL: https://issues.apache.org/jira/browse/HBASE-30393
> Project: HBase
> Issue Type: Bug
> Components: IPC/RPC
> Affects Versions: 2.4.11
> Reporter: huginn
> Assignee: huginn
> Priority: Major
> Labels: pull-request-available
>
> ## What happens
> SimpleRpcServer can retain a stale response timestamp on a connection after a queued RPC response has been fully written. If the connection later has another response that cannot make progress, the stale timestamp can make the connection appear to have been blocked longer than the current response.
> ## When it happens
> When SimpleRpcServer sends responses through its direct-write and responder paths, a response can be partially written and later completed on the same connection. The responder's purge check uses the connection response timestamp to identify calls that have not been sent for a long time.
> ## Impact
> A client connection can be closed by the response purge path, causing RPC failures and retries.
> ## Root cause
> In SimpleRpcServerResponder.processResponse, lastSentTime is set when a response remains partially written but is not cleared after the response has no remaining bytes. A later stalled response on the same connection can therefore inherit a timestamp from an earlier response.
> ## Proposed fix
> Clear the response timestamp when the current response is fully written. Preserve the timestamp while a response is making no progress, update it when a stalled response first starts or makes progress, and add regression coverage for completion and purge behavior.
> ## Reproduction
> Testing evidence will be added by the reporter.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)