[
https://issues.apache.org/jira/browse/HDDS-16097?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated HDDS-16097:
----------------------------------
Labels: pull-request-available (was: )
> Add unit tests for OzoneManagerRatisServer.checkRetryCache (HDDS-13621)
> -----------------------------------------------------------------------
>
> Key: HDDS-16097
> URL: https://issues.apache.org/jira/browse/HDDS-16097
> Project: Apache Ozone
> Issue Type: Task
> Components: Ozone Manager
> Reporter: Wei-Chiu Chuang
> Assignee: Wei-Chiu Chuang
> Priority: Major
> Labels: pull-request-available
>
> Follow-up test coverage for
> [HDDS-13621|https://issues.apache.org/jira/browse/HDDS-13621] (fixed in [PR
> #9711|https://github.com/apache/ozone/pull/9711]).
> *Problem*
> When Ratis RetryCache hits a *failed* {{RaftClientReply}}
> ({{!reply.isSuccess()}}), the old {{checkRetryCache()}} path called
> {{getOMResponse(reply)}} and could NPE because failed replies often have no
> usable response message. The fix returns {{null}} so the normal submit path
> can retry.
> The PR was validated manually (freon ommg under JVM pauses) but has no
> automated unit test.
> *Scope*
> Add two unit tests in {{TestOzoneManagerRatisServer}} (or a small dedicated
> test class), using mocked {{RetryCache}} / {{RetryCache.Entry}} and
> {{Server.getCurCall()}} setup (same pattern as
> {{testRetryCacheWithDownedOM}}):
> # *Failed cached reply* — mock cache entry whose {{getReplyFuture()}}
> completes with {{setSuccess(false)}} / {{Message.EMPTY}} (e.g.
> {{NotLeaderException}}). Assert {{checkRetryCache()}} returns {{null}} and
> does not NPE.
> # *Successful cached reply* — mock cache entry with {{setSuccess(true)}} and
> a serialized {{OMResponse}} in the reply message. Assert
> {{checkRetryCache()}} returns the expected {{OMResponse}} (regression guard).
> *References*
> * Parent fix: HDDS-13621 / PR #9711
> * Related idempotent retry work: HDDS-11558
> * Existing integration coverage (success path only):
> {{TestOzoneManagerHAWithAllRunning#testOMRetryCache}},
> {{TestOzoneManagerHAWithStoppedNodes#testRetryCacheWithDownedOM}}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]