Chi-Hsuan Huang created HDDS-15448:
--------------------------------------

             Summary: Speed up retry-delay-bound tests in 
TestReconTaskControllerImpl
                 Key: HDDS-15448
                 URL: https://issues.apache.org/jira/browse/HDDS-15448
             Project: Apache Ozone
          Issue Type: Sub-task
          Components: Ozone Recon, test
            Reporter: Chi-Hsuan Huang


After HDDS\-15269 removed the 30s stop\(\) hangs, TestReconTaskControllerImpl 
is down to \~26s. The remaining \~19s comes from tests that wait out real 
wall\-clock time. Address these in priority order, preferring changes that do 
NOT touch production code and only touching production where the change has 
independent value:# First \(no production change\): replace fixed sleeps with 
waitFor.

* testFailedTaskRetryLogic \(\~3.1s\): Thread.sleep\(3000\) only waits for 
async processing to finish. Replace with GenericTestUtils.waitFor\(...\) 
polling \(testConsumeOMEvents already uses a CountDownLatch for this\). Pure 
win, no production change.

# Next: make the retry\-count logic testable without the wall clock.

* testNewRetryLogicWithMaxRetriesExceeded \(\~12.7s, 6x Thread.sleep\(2100\)\) 
and testProcessReInitializationEventWithTaskFailuresAndRetry \(\~3.4s\) wait 
out the RETRY\_DELAY\_MS \(2s\) gate in validateRetryCountAndDelay\(\), which 
mixes a time gate with retry counting. Prefer separating the time gate from the 
retry\-count check so the counting logic can be tested without sleeping, rather 
than adding a test\-only setter just to shorten the sleep.

# Last \(only if there is operational value\): make RETRY\_DELAY\_MS 
configurable.

* Consistent with the existing OZONE\_RECON\_TASK\_THREAD\_COUNT\_KEY and 
OZONE\_RECON\_OM\_EVENT\_BUFFER\_CAPACITY config keys in the same class, expose 
it as an OzoneConfiguration key \(default 2000\) so tests can set it near zero. 
This has independent tunability value and is not a test\-only hook.

Expected: brings the class from \~26s down to a few seconds.

Note: testBadBehavedTaskIsIgnored is currently @Disabled, so its sleeps do not 
affect runtime.





--
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