[ https://issues.apache.org/jira/browse/HDDS-2523?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16976761#comment-16976761 ]
Attila Doroszlai commented on HDDS-2523: ---------------------------------------- Thanks [~szetszwo], that would be great. I also debugged it and found so far that this happens with standalone replication type (which TestContainerMapper is using). I have a simple fix idea, but need to test it with other cases, too. > BufferPool.releaseBuffer may release a buffer different than the head of the > list > --------------------------------------------------------------------------------- > > Key: HDDS-2523 > URL: https://issues.apache.org/jira/browse/HDDS-2523 > Project: Hadoop Distributed Data Store > Issue Type: Bug > Components: Ozone Client > Reporter: Tsz-wo Sze > Assignee: Attila Doroszlai > Priority: Major > > {code} > //BufferPool > public void releaseBuffer(ByteBuffer byteBuffer) { > // always remove from head of the list and append at last > ByteBuffer buffer = bufferList.remove(0); > // Ensure the buffer to be removed is always at the head of the list. > Preconditions.checkArgument(buffer.equals(byteBuffer)); > buffer.clear(); > bufferList.add(buffer); > Preconditions.checkArgument(currentBufferIndex >= 0); > currentBufferIndex--; > } > {code} > In the code above, it expects buffer and byteBuffer are the same object, i.e. > buffer == byteBuffer. However the precondition is checking > buffer.equals(byteBuffer). Unfortunately, both buffer and byteBuffer have > remaining() == 0 so that equals(..) returns true and the precondition does > not catch the bug. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org