RobertIndie commented on a change in pull request #12403:
URL: https://github.com/apache/pulsar/pull/12403#discussion_r771776314



##########
File path: 
pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerImpl.java
##########
@@ -1975,6 +1982,9 @@ public void seek(Function<String, Object> function) 
throws PulsarClientException
                 ackSet.recycle();
 
                 seek = Commands.newSeek(consumerId, requestId, 
msgId.getLedgerId(), msgId.getEntryId(), ackSetArr);
+            } else if(messageId instanceof ChunkMessageIdImpl){
+                ChunkMessageIdImpl msgId = (ChunkMessageIdImpl) messageId;
+                seek = Commands.newSeek(consumerId, requestId, 
msgId.getFirstChunkMessageId().getLedgerId(), 
msgId.getFirstChunkMessageId().getEntryId(), new long[0]);

Review comment:
       The consumer doesn't depend on the first chunk id **set by the 
producer**, but does depend on the first chunk id **calculated by the consumer 
itself**. If you go through the code, you can find that this first chunk id 
here is either calculated by the producer or by the consumer. If this chunk msg 
id is from the `consumer.receive`, then the first chunk id here is calculated 
by the consumer but not the producer.




-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to