[ 
https://issues.apache.org/jira/browse/HDDS-16417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wei-Chiu Chuang resolved HDDS-16417.
------------------------------------
    Resolution: Duplicate

> InterSCMGrpcClient mis-applies ozone.scm.ha.grpc.deadline.interval 
> (MILLISECONDS vs SECONDS)
> --------------------------------------------------------------------------------------------
>
>                 Key: HDDS-16417
>                 URL: https://issues.apache.org/jira/browse/HDDS-16417
>             Project: Apache Ozone
>          Issue Type: Bug
>          Components: SCM HA
>            Reporter: Wei-Chiu Chuang
>            Priority: Major
>              Labels: grpc, scm-ha
>
> h3. Problem
> {{ozone.scm.ha.grpc.deadline.interval}} is documented as the deadline for SCM 
> DB checkpoint download over Inter-SCM gRPC (default {{30m}} in 
> {{ozone-default.xml}}).
> {{InterSCMGrpcClient}} reads the config with {{getTimeDuration(..., 
> TimeUnit.MILLISECONDS)}}, so {{30m}} becomes {{1_800_000}} (milliseconds).
> The gRPC stub deadline is then set with:
> {code}
> withDeadlineAfter(timeout, TimeUnit.SECONDS);
> {code}
> So the numeric value is interpreted as *seconds*, not milliseconds. With the 
> default config this is ~1,800,000 seconds (~21 days), not 30 minutes. The 
> documented deadline is not enforced.
> h3. Affected code
> * 
> {{hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/InterSCMGrpcClient.java}}
> * Config: {{ScmConfigKeys.OZONE_SCM_HA_GRPC_DEADLINE_INTERVAL}} / 
> {{ozone-default.xml}}
> Used when a follower (or Recon) downloads the leader SCM RocksDB checkpoint 
> during SCM HA install snapshot ({{SCMSnapshotProvider.getSCMDBSnapshot}}).
> h3. Expected behavior
> A {{30m}} setting should expire the client RPC after 30 minutes of wall-clock 
> time (gRPC {{DEADLINE_EXCEEDED}}), allowing operators to tune large 
> {{scm.db}} transfers.
> h3. Suggested fix
> Use {{TimeUnit.MILLISECONDS}} in {{withDeadlineAfter}}, or read the duration 
> with {{TimeUnit.SECONDS}} and pass seconds consistently. Add a unit test that 
> a small value (e.g. {{1s}}) fails a slow/hung download within expected bounds.
> h3. Impact
> Operators may believe snapshot downloads are capped at 30m while the 
> effective gRPC deadline is orders of magnitude larger; troubleshooting 
> snapshot loops may incorrectly rule out client deadline expiry.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to