[
https://issues.apache.org/jira/browse/HDDS-16254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated HDDS-16254:
----------------------------------
Labels: pull-request-available (was: )
> ozone.om.ratis.server.retry.cache.timeout has no effect
> -------------------------------------------------------
>
> Key: HDDS-16254
> URL: https://issues.apache.org/jira/browse/HDDS-16254
> Project: Apache Ozone
> Issue Type: Improvement
> Reporter: YUNG_CHENG
> Assignee: YUNG_CHENG
> Priority: Minor
> Labels: pull-request-available
>
> OzoneManagerRatisServer.newRaftProperties() applies two different config keys
> to the same Ratis property, raft.server.retrycache.expirytime:
> 1. setRaftRetryCacheProperties() reads
> ozone.om.ratis.server.retry.cache.timeout (OMConfigKeys, documented in
> ozone-default.xml with a 600000ms default) and calls
> RaftServerConfigKeys.RetryCache.setExpiryTime().
> 2. At the end of newRaftProperties(),
> getOMHAConfigs(conf).forEach(properties::set) copies every ozone.om.ha.*
> property into the RaftProperties with the prefix trimmed.
> OzoneManagerRatisServerConfig declares
> ozone.om.ha.raft.server.retrycache.expirytime with @Config(defaultValue =
> "300s"), which the config annotation processor emits into
> ozone-manager-default.xml. Since that file is an OzoneConfiguration default
> resource, the key is always present even when the operator never sets it.
> Step 2 runs after step 1, so ozone.om.ratis.server.retry.cache.timeout is
> unconditionally overwritten and can never take effect.
> h3. Reproduction
> {code:java}
> OzoneConfiguration conf = new OzoneConfiguration();
> conf.set(OMConfigKeys.OZONE_OM_RATIS_SERVER_RETRY_CACHE_TIMEOUT_KEY, "42s");
> RaftProperties props = OzoneManagerRatisServer.newRaftProperties(conf, port,
> dir);
> RaftServerConfigKeys.RetryCache.expiryTime(props); // 300s, not 42s
> {code}
> h3. Impact
> Operators tuning the documented ozone.om.ratis.server.retry.cache.timeout get
> no effect and no warning. The 600000ms default advertised in
> ozone-default.xml has never been the effective value; the effective default
> is 300s.
> Introduced by HDDS-4329 (commit 46690430d7), which added the new config and
> the getOMHAConfigs() override without removing the old key.
> h3. Proposed fix
> Deprecate ozone.om.ratis.server.retry.cache.timeout, remove it from
> ozone-default.xml, drop setRaftRetryCacheProperties(), and standardise on
> ozone.om.ha.raft.server.retrycache.expirytime. Happy to discuss an
> alternative that keeps the old key working with a deprecation warning instead.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]