Huginn-kio opened a new pull request, #8671:
URL: https://github.com/apache/hbase/pull/8671
## HBASE-30393
### Summary
`SimpleRpcServer` can retain a stale response timestamp after a queued
response
is fully written. A later stalled response can then be purged based on the
earlier response's timestamp.
### Root cause
`SimpleRpcServerResponder.processResponse` updates `lastSentTime` for an
incomplete response but does not clear it when the response is complete. It
also
refreshes the timestamp when a non-blocking write makes no progress.
### Fix
* Clear `lastSentTime` when the current response is fully written.
* Keep or refresh the timestamp only while an incomplete response remains and
the write makes progress, or when no timestamp has been recorded yet.
* Do not purge a connection whose response queue is empty.
* Make `lastSentTime` visible to the responder and purge paths.
* Add regression coverage for completed responses, stalled writes, and purge
behavior.
### Testing
* RED before the fix: `TestSimpleRpcServerResponder` — 3 tests run, 3
failures,
0 errors.
* GREEN after the fix: `TestSimpleRpcServerResponder` — 3 tests run, 0
failures,
0 errors.
* IPC neighbor regression: `TestSimpleRpcServer`,
`TestSecureSimpleRpcServer`,
and `TestRpcServerSlowConnectionSetup` — 4 tests run, 0 failures, 0 errors.
* Focused Checkstyle for the new test — 0 violations.
* RAT — 0 unapproved or unknown licenses.
* SpotBugs — 0 bug instances and 0 errors.
* `package` build — successful.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]