Siyao Meng created HDDS-17516:
---------------------------------
Summary: Intermittent failure in
TestReconAndAdminContainerCLI#testMissingContainer: Recon has not picked up new
container
Key: HDDS-17516
URL: https://issues.apache.org/jira/browse/HDDS-17516
Project: Apache Ozone
Issue Type: Sub-task
Components: Ozone Recon, test
Reporter: Siyao Meng
Assignee: Siyao Meng
{code}
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 31.49 s <<<
FAILURE! -- in org.apache.hadoop.ozone.recon.TestReconAndAdminContainerCLI
org.apache.hadoop.ozone.recon.TestReconAndAdminContainerCLI.testMissingContainer
-- Time elapsed: 0.058 s <<< FAILURE!
org.opentest4j.AssertionFailedError: expected: <[ContainerInfo{id=#1,
state=OPEN, ...}, ContainerInfo{id=#2, state=OPEN,
stateEnterTime=2026-10-28T05:05:13.980Z, ...}]> but was: <[ContainerInfo{id=#1,
state=OPEN, ...}]>
at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1145)
at
org.apache.hadoop.ozone.recon.TestReconAndAdminContainerCLI.setupRatisKey(TestReconAndAdminContainerCLI.java:414)
at
org.apache.hadoop.ozone.recon.TestReconAndAdminContainerCLI.testMissingContainer(TestReconAndAdminContainerCLI.java:203)
{code}
h3. Root cause
{{setupRatisKey}} writes a key and then immediately asserts that Recon's
container list equals SCM's. SCM knows the new container as soon as it
allocates it, but Recon only learns about it from the datanode container report
sent with a Recon heartbeat. Since HDDS-17314 the datanode heartbeats Recon on
its own interval ({{hdds.heartbeat.recon.interval}}, 1s in this test), so a
triggered heartbeat right after the container is created can skip Recon, and
the report arrives up to about a second later. In the failing run container #2
was allocated about 50ms before the assertion.
h3. Fix
Wait for Recon's container list to match SCM's instead of asserting it once.
- https://github.com/apache/ozone/actions/runs/40633118285/job/122637731111
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]