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]