Tsz-wo Sze created HDDS-2523: -------------------------------- Summary: 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 Reporter: Tsz-wo Sze
{code} 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 , the both buffer 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-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org