Shuo Huang created HDDS-17483:
---------------------------------

             Summary: ContainerReportQueue rejects replacement FCR when full
                 Key: HDDS-17483
                 URL: https://issues.apache.org/jira/browse/HDDS-17483
             Project: Apache Ozone
          Issue Type: Improvement
            Reporter: Shuo Huang
            Assignee: Shuo Huang


When ContainerReportQueue is full, a new FCR is rejected before checking
whether an older FCR from the same datanode can be replaced.

Replacing the old FCR would not increase the queue size. Instead, the old
report remains queued and add() throws IllegalStateException from the
container report event path.

This can be reproduced with a queue of size 1:

{code:java}
ContainerReportQueue queue = new ContainerReportQueue(1);

queue.add(oldReport);
queue.add(newReport); // Same datanode as oldReport
{code}

The second add fails with:

{noformat}
java.lang.IllegalStateException: capacity not available
  at ContainerReportQueue.add(ContainerReportQueue.java:184)
{noformat}



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to