Meng-Shuan Tsai created HDDS-16235:
--------------------------------------

             Summary: Intermittent failure in 
TestOzoneClientRetriesOnExceptions#testMaxRetriesByOzoneClient
                 Key: HDDS-16235
                 URL: https://issues.apache.org/jira/browse/HDDS-16235
             Project: Apache Ozone
          Issue Type: Sub-task
            Reporter: Meng-Shuan Tsai
            Assignee: Meng-Shuan Tsai


testMaxRetriesByOzoneClient fails intermittently (~3% of runs) at 
TestOzoneClientRetriesOnExceptions.java:206 with:
{code:java}
java.io.IOException: Failed to execute command cmdType: CreateContainer 
containerID: 1 datanodeUuid: "..." createContainer { state: OPEN }
        at 
org.apache.hadoop.hdds.scm.XceiverClientSpi.getIOExceptionForSendCommand(XceiverClientSpi.java:178)
        at 
org.apache.hadoop.hdds.scm.XceiverClientSpi.sendCommand(XceiverClientSpi.java:131)
        at 
org.apache.hadoop.ozone.client.rpc.TestOzoneClientRetriesOnExceptions.testMaxRetriesByOzoneClient(TestOzoneClientRetriesOnExceptions.java:206)
Caused by: java.util.concurrent.ExecutionException: 
org.apache.ratis.protocol.exceptions.StateMachineException: 
org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException: 
Container creation failed because key value container already exists
        at 
org.apache.hadoop.hdds.scm.XceiverClientSpi.sendCommand(XceiverClientSpi.java:125)
Caused by: org.apache.ratis.protocol.exceptions.StateMachineException: 
org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException: 
Container creation failed because key value container already exists
        at 
org.apache.hadoop.ozone.container.common.transport.server.ratis.ContainerStateMachine.lambda$applyTransaction$2(ContainerStateMachine.java:1193)
{code}
Steps to reproduce: run TestOzoneClientRetriesOnExceptions out of 100 runs ( 
[https://github.com/shuan1026/ozone/actions/runs/32260061359]), 3 failed with 
this identical stack trace, all on containerID 1. Datanode-side log for one 
such failure:
{code:java}
14:18:42,671 leader elected for the container's pipeline (term 1)
14:18:42,788 CreateContainer for containerID 1 fails: Result: 
CONTAINER_ALREADY_EXISTS
14:18:42,800 ContainerStateMachine ApplyTransaction failed at logIndex 5
14:18:42,807 pipeline close action triggered as a result
{code}
Line 206 is the test's own manual 
xceiverClient.sendCommand(getCreateContainerRequest(...)), sent once per 
pre-allocated container to ensure it is OPEN before writing. By design this 
should be the only path that creates the container on the datanode, but the log 
shows it was already created by something else ~117ms after the pipeline's 
leader election, so the test's own call is rejected as a duplicate, 
non-idempotent create.

No @Flaky annotation exists on this test and no prior JIRA report was found for 
it.



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