lhotari commented on a change in pull request #12343:
URL: https://github.com/apache/pulsar/pull/12343#discussion_r754981032
##########
File path:
pulsar-client/src/main/java/org/apache/pulsar/client/impl/PersistentAcknowledgmentsGroupingTracker.java
##########
@@ -477,13 +477,16 @@ public void flush() {
private void flushAsync(ClientCnx cnx) {
boolean shouldFlush = false;
if (cumulativeAckFlushRequired) {
- newMessageAckCommandAndWrite(cnx, consumer.consumerId,
lastCumulativeAck.messageId.ledgerId,
- lastCumulativeAck.messageId.getEntryId(),
lastCumulativeAck.bitSetRecyclable,
- AckType.Cumulative, null, Collections.emptyMap(), false,
- this.currentCumulativeAckFuture, null);
-
this.consumer.unAckedChunkedMessageIdSequenceMap.remove(lastCumulativeAck.messageId);
- shouldFlush = true;
- cumulativeAckFlushRequired = false;
+ final MessageIdImpl messageIdOfLastAck =
lastCumulativeAck.messageId;
Review comment:
> I think the root cause is the design of LastCumulativeAck class
@BewareMyPower I also think that LastCumulativeAck class is the source of
problems. Using the Netty Recycler introduces the thread safety issue. Using an
immutable class design for LastCumulativeAck and removing the use of Netty
recycler would be something that I'd recommend for fixing the issue.
--
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]