rkhachatryan commented on a change in pull request #11507: [FLINK-16587] Add basic CheckpointBarrierHandler for unaligned checkpoint URL: https://github.com/apache/flink/pull/11507#discussion_r398948746
########## File path: flink-runtime/src/main/java/org/apache/flink/runtime/io/network/partition/consumer/RemoteInputChannel.java ########## @@ -514,20 +532,29 @@ public void onBuffer(Buffer buffer, int sequenceNumber, int backlog) throws IOEx try { - final boolean wasEmpty; - synchronized (receivedBuffers) { - // Similar to notifyBufferAvailable(), make sure that we never add a buffer - // after releaseAllResources() released all buffers from receivedBuffers - // (see above for details). - if (isReleased.get()) { - return; - } + // Similar to notifyBufferAvailable(), make sure that we never add a buffer + // after releaseAllResources() released all buffers from receivedBuffers + // (see above for details). + if (isReleased.get()) { + return; + } - if (expectedSequenceNumber != sequenceNumber) { - onError(new BufferReorderingException(expectedSequenceNumber, sequenceNumber)); - return; + if (expectedSequenceNumber != sequenceNumber) { + onError(new BufferReorderingException(expectedSequenceNumber, sequenceNumber)); + return; + } + + if (inputGate.bufferReceivedListener != null) { + CheckpointBarrier checkpointBarrier = parseCheckpointBarrier(buffer); + if (checkpointBarrier == null) { + inputGate.bufferReceivedListener.notifyBufferReceived(buffer, channelInfo); + } else { + inputGate.bufferReceivedListener.notifyBarrierReceived(checkpointBarrier, channelInfo); } + } + final boolean wasEmpty; + synchronized (receivedBuffers) { Review comment: Do we miss a second check for `isReleased.get()` after `synchronized`? If between the 1st check and `synchronized` some other thread enters `releaseAllResources`, sets the flag and releases all the buffers; then we don't see it and continue; which I believe is an error. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services