tisonkun commented on code in PR #20242: URL: https://github.com/apache/pulsar/pull/20242#discussion_r1186971096
########## pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerImpl.java: ########## @@ -2153,9 +2153,14 @@ private CompletableFuture<Void> seekAsyncInternal(long requestId, ByteBuf seek, MessageIdAdv originSeekMessageId = seekMessageId; seekMessageId = (MessageIdAdv) seekId; - duringSeek.set(true); + + if (!duringSeek.compareAndSet(false, true)) { + log.warn("[{}][{}] Attempting to seek operation that is already in progress, cancelling {}", + topic, subscription, seekBy); + seekFuture.cancel(true); Review Comment: After a closer look `f.cancel(true)` is the same as `f.completeExceptionally(new CancellationException())`. So either way should be OK. -- 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. To unsubscribe, e-mail: commits-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org