Janus Chow created HDDS-7285:
--------------------------------

             Summary: Fix concurrent issue in DeleteBlocksCommandHandler
                 Key: HDDS-7285
                 URL: https://issues.apache.org/jira/browse/HDDS-7285
             Project: Apache Ozone
          Issue Type: Bug
            Reporter: Janus Chow
            Assignee: Janus Chow


After HDDS-7283, the mark for the delete process will be handled concurrently.

The current implementation has a concurrent issue which will lead to the 
following exception.
{code:java}
java.util.concurrent.ExecutionException: 
java.lang.ArrayIndexOutOfBoundsException: 4
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at 
org.apache.hadoop.ozone.container.common.statemachine.commandhandler.DeleteBlocksCommandHandler.lambda$processCmd$0(DeleteBlocksCommandHandler.java:301)
        at java.util.ArrayList.forEach(ArrayList.java:1257)
        at 
org.apache.hadoop.ozone.container.common.statemachine.commandhandler.DeleteBlocksCommandHandler.processCmd(DeleteBlocksCommandHandler.java:299)
        at 
org.apache.hadoop.ozone.container.common.statemachine.commandhandler.DeleteBlocksCommandHandler.access$100(DeleteBlocksCommandHandler.java:79)
        at 
org.apache.hadoop.ozone.container.common.statemachine.commandhandler.DeleteBlocksCommandHandler$DeleteCmdWorker.run(DeleteBlocksCommandHandler.java:183)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 4
        at java.util.ArrayList.add(ArrayList.java:463)
        at 
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos$ContainerBlocksDeletionACKProto$Builder.addResults(StorageContainerDatanodeProtocolProtos.java:33469)
        at 
org.apache.hadoop.ozone.container.common.statemachine.commandhandler.DeleteBlocksCommandHandler$ProcessTransactionTask.run(DeleteBlocksCommandHandler.java:263)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        ... 1 more {code}
This ticket is to fix this issue.



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