stackoverflow when many unacked messages or delay messages
- Dominant language
- Java
- Stars
- 15.3k
- Forks
- 3.8k
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 160
Description
**Describe the bug**
A clear and concise description of what the bug is.
```
Caused by: java.lang.StackOverflowError
at java.lang.reflect.ReflectAccess.copyConstructor(ReflectAccess.java:148) ~[?:1.8.0_242]
at sun.reflect.ReflectionFactory.copyConstructor(ReflectionFactory.java:330) ~[?:1.8.0_242]
at java.lang.Class.copyConstructors(Class.java:3133) ~[?:1.8.0_242]
at java.lang.Class.getDeclaredConstructors(Class.java:2020) ~[?:1.8.0_242]
at java.lang.invoke.InnerClassLambdaMetafactory$1.run(InnerClassLambdaMetafactory.java:200) ~[?:1.8.0_242]
at java.lang.invoke.InnerClassLambdaMetafactory$1.run(InnerClassLambdaMetafactory.java:197) ~[?:1.8.0_242]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_242]
at java.lang.invoke.InnerClassLambdaMetafactory.buildCallSite(InnerClassLambdaMetafactory.java:196) ~[?:1.8.0_242]
at java.lang.invoke.LambdaMetafactory.metafactory(LambdaMetafactory.java:304) ~[?:1.8.0_242]
at java.lang.invoke.CallSite.makeSite(CallSite.java:302) ~[?:1.8.0_242]
at java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:307) ~[?:1.8.0_242]
at java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:297) ~[?:1.8.0_242]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl$11.readEntryFailed(ManagedCursorImpl.java:1247) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry(EntryCacheImpl.java:195) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1711) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1642) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.lambda$asyncReplayEntries$9(ManagedCursorImpl.java:1262) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_242]
at java.util.TreeMap$KeySpliterator.forEachRemaining(TreeMap.java:2746) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) ~[?:1.8.0_242]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.asyncReplayEntries(ManagedCursorImpl.java:1256) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.asyncReplayEntriesInOrder(PersistentDispatcherMultipleConsumers.java:385) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readMoreEntries(PersistentDispatcherMultipleConsumers.java:339) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.sendMessagesToConsumers(PersistentDispatcherMultipleConsumers.java:590) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readEntriesComplete(PersistentDispatcherMultipleConsumers.java:488) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl$11.readEntryComplete(ManagedCursorImpl.java:1237) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry0(EntryCacheImpl.java:209) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry(EntryCacheImpl.java:188) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1711) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1642) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.lambda$asyncReplayEntries$9(ManagedCursorImpl.java:1262) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_242]
at java.util.TreeMap$KeySpliterator.forEachRemaining(TreeMap.java:2746) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) ~[?:1.8.0_242]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.asyncReplayEntries(ManagedCursorImpl.java:1256) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.asyncReplayEntriesInOrder(PersistentDispatcherMultipleConsumers.java:385) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readMoreEntries(PersistentDispatcherMultipleConsumers.java:339) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.sendMessagesToConsumers(PersistentDispatcherMultipleConsumers.java:590) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readEntriesComplete(PersistentDispatcherMultipleConsumers.java:488) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl$11.readEntryComplete(ManagedCursorImpl.java:1237) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry0(EntryCacheImpl.java:209) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry(EntryCacheImpl.java:188) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1711) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1642) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.lambda$asyncReplayEntries$9(ManagedCursorImpl.java:1262) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_242]
at java.util.TreeMap$KeySpliterator.forEachRemaining(TreeMap.java:2746) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) ~[?:1.8.0_242]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.asyncReplayEntries(ManagedCursorImpl.java:1256) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.asyncReplayEntriesInOrder(PersistentDispatcherMultipleConsumers.java:385) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readMoreEntries(PersistentDispatcherMultipleConsumers.java:339) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.sendMessagesToConsumers(PersistentDispatcherMultipleConsumers.java:590) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readEntriesComplete(PersistentDispatcherMultipleConsumers.java:488) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl$11.readEntryComplete(ManagedCursorImpl.java:1237) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry0(EntryCacheImpl.java:209) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry(EntryCacheImpl.java:188) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1711) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1642) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.lambda$asyncReplayEntries$9(ManagedCursorImpl.java:1262) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_242]
at java.util.TreeMap$KeySpliterator.forEachRemaining(TreeMap.java:2746) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) ~[?:1.8.0_242]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.asyncReplayEntries(ManagedCursorImpl.java:1256) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.asyncReplayEntriesInOrder(PersistentDispatcherMultipleConsumers.java:385) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readMoreEntries(PersistentDispatcherMultipleConsumers.java:339) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.sendMessagesToConsumers(PersistentDispatcherMultipleConsumers.java:590) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readEntriesComplete(PersistentDispatcherMultipleConsumers.java:488) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl$11.readEntryComplete(ManagedCursorImpl.java:1237) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry0(EntryCacheImpl.java:209) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry(EntryCacheImpl.java:188) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1711) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1642) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.lambda$asyncReplayEntries$9(ManagedCursorImpl.java:1262) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_242]
at java.util.TreeMap$KeySpliterator.forEachRemaining(TreeMap.java:2746) ~[?:1.8.0_242]
--
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry(EntryCacheImpl.java:188) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1711) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1642) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.lambda$asyncReplayEntries$9(ManagedCursorImpl.java:1262) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_242]
at java.util.TreeMap$KeySpliterator.forEachRemaining(TreeMap.java:2746) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) ~[?:1.8.0_242]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.asyncReplayEntries(ManagedCursorImpl.java:1256) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.asyncReplayEntriesInOrder(PersistentDispatcherMultipleConsumers.java:385) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readMoreEntries(PersistentDispatcherMultipleConsumers.java:339) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.sendMessagesToConsumers(PersistentDispatcherMultipleConsumers.java:590) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readEntriesComplete(PersistentDispatcherMultipleConsumers.java:488) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl$11.readEntryComplete(ManagedCursorImpl.java:1237) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry0(EntryCacheImpl.java:209) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry(EntryCacheImpl.java:188) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1711) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1642) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.lambda$asyncReplayEntries$9(ManagedCursorImpl.java:1262) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_242]
at java.util.TreeMap$KeySpliterator.forEachRemaining(TreeMap.java:2746) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) ~[?:1.8.0_242]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.asyncReplayEntries(ManagedCursorImpl.java:1256) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.asyncReplayEntriesInOrder(PersistentDispatcherMultipleConsumers.java:385) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readMoreEntries(PersistentDispatcherMultipleConsumers.java:339) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.sendMessagesToConsumers(PersistentDispatcherMultipleConsumers.java:590) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readEntriesComplete(PersistentDispatcherMultipleConsumers.java:488) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl$11.readEntryComplete(ManagedCursorImpl.java:1237) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry0(EntryCacheImpl.java:209) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry(EntryCacheImpl.java:188) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1711) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1642) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.lambda$asyncReplayEntries$9(ManagedCursorImpl.java:1262) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_242]
at java.util.TreeMap$KeySpliterator.forEachRemaining(TreeMap.java:2746) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) ~[?:1.8.0_242]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.asyncReplayEntries(ManagedCursorImpl.java:1256) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.asyncReplayEntriesInOrder(PersistentDispatcherMultipleConsumers.java:385) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readMoreEntries(PersistentDispatcherMultipleConsumers.java:339) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.sendMessagesToConsumers(PersistentDispatcherMultipleConsumers.java:590) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readEntriesComplete(PersistentDispatcherMultipleConsumers.java:488) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl$11.readEntryComplete(ManagedCursorImpl.java:1237) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry0(EntryCacheImpl.java:209) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry(EntryCacheImpl.java:188) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1711) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1642) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.lambda$asyncReplayEntries$9(ManagedCursorImpl.java:1262) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_242]
at java.util.TreeMap$KeySpliterator.forEachRemaining(TreeMap.java:2746) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) ~[?:1.8.0_242]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.asyncReplayEntries(ManagedCursorImpl.java:1256) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.asyncReplayEntriesInOrder(PersistentDispatcherMultipleConsumers.java:385) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readMoreEntries(PersistentDispatcherMultipleConsumers.java:339) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.sendMessagesToConsumers(PersistentDispatcherMultipleConsumers.java:590) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readEntriesComplete(PersistentDispatcherMultipleConsumers.java:488) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl$11.readEntryComplete(ManagedCursorImpl.java:1237) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry0(EntryCacheImpl.java:209) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry(EntryCacheImpl.java:188) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1711) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1642) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.lambda$asyncReplayEntries$9(ManagedCursorImpl.java:1262) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_242]
at java.util.TreeMap$KeySpliterator.forEachRemaining(TreeMap.java:2746) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:1.8.0_242]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:1.8.0_242]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_242]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) ~[?:1.8.0_242]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.asyncReplayEntries(ManagedCursorImpl.java:1256) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.asyncReplayEntriesInOrder(PersistentDispatcherMultipleConsumers.java:385) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readMoreEntries(PersistentDispatcherMultipleConsumers.java:339) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.sendMessagesToConsumers(PersistentDispatcherMultipleConsumers.java:590) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readEntriesComplete(PersistentDispatcherMultipleConsumers.java:488) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl$11.readEntryComplete(ManagedCursorImpl.java:1237) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry0(EntryCacheImpl.java:209) ~[org.apache.pulsar-managed-ledger-2.7.2.jar:2.7.2]
```
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
in sendMessagesToConsumers ,maybe we should execute readMoreEntries();
in another thread
like topic.getBrokerService().executor().execute(() -> readMoreEntries());
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
**Additional context**
Add any other context about the problem here.
master also exists
Contributor guide
Research direction
Start by tracing the repeated calls between ManagedCursorImpl.asyncReplayEntries and PersistentDispatcherMultipleConsumers.asyncReplayEntriesInOrder in the provided stack trace. Reproduce the failure with many unacknowledged or delayed messages and determine whether the replay path still overflows the stack. Done means the scenario no longer produces StackOverflowError.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100