[ https://issues.apache.org/jira/browse/HDDS-2523?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tsz-wo Sze updated HDDS-2523: ----------------------------- Attachment: a.patch > 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 > Attachments: a.patch > > > {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