You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2022/06/30 11:10:04 UTC

[GitHub] [pulsar] eolivelli commented on pull request #16304: [fix][broker] Do not use IO thread for consumerFlow in Shared subscription

eolivelli commented on PR #16304:
URL: https://github.com/apache/pulsar/pull/16304#issuecomment-1171085785

   @hangc0276 this is more details about `BlobStoreBackedReadHandleImpl`
   
   This is when the read happens (it is actually “triggered”) for the Shared subscription (PersistentDispatcherMultipleConsumers)
   
   ```
   2022-06-30T12:23:19,689+0200 [pulsar-io-18-21] INFO  org.apache.bookkeeper.mledger.offload.jcloud.impl.BlobStoreBackedReadHandleImpl - Ledger 0: reading 95 - 95
   java.lang.Exception: Reading 95 95
   at org.apache.bookkeeper.mledger.offload.jcloud.impl.BlobStoreBackedReadHandleImpl.readAsync(BlobStoreBackedReadHandleImpl.java:105) ~[?:?]
   at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry0(EntryCacheImpl.java:211) ~[managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry(EntryCacheImpl.java:188) ~[managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1982) ~[managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.lambda$asyncReadEntry$24(ManagedLedgerImpl.java:1899) ~[managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:753) ~[?:?]
   at java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:731) ~[?:?]
   at java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:2108) ~[?:?]
   at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1899) ~[managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.lambda$asyncReplayEntries$11(ManagedCursorImpl.java:1413) ~[managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) [?:?]
   at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) [?:?]
   at java.util.TreeMap$KeySpliterator.forEachRemaining(TreeMap.java:2739) [?:?]
   at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) [?:?]
   at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) [?:?]
   at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) [?:?]
   at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) [?:?]
   at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) [?:?]
   at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) [?:?]
   at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.asyncReplayEntries(ManagedCursorImpl.java:1407) [managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.asyncReplayEntriesInOrder(PersistentDispatcherMultipleConsumers.java:393) [pulsar-broker.jar:2.10.1.1-SNAPSHOT]
   at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.readMoreEntries(PersistentDispatcherMultipleConsumers.java:252) [pulsar-broker.jar:2.10.1.1-SNAPSHOT]
   at org.apache.pulsar.broker.service.persistent.PersistentDispatcherMultipleConsumers.consumerFlow(PersistentDispatcherMultipleConsumers.java:224) [pulsar-broker.jar:2.10.1.1-SNAPSHOT]
   at org.apache.pulsar.broker.service.persistent.PersistentSubscription.consumerFlow(PersistentSubscription.java:363) [pulsar-broker.jar:2.10.1.1-SNAPSHOT]
   at org.apache.pulsar.broker.service.Consumer.flowPermits(Consumer.java:691) [pulsar-broker.jar:2.10.1.1-SNAPSHOT]
   at org.apache.pulsar.broker.service.ServerCnx.handleFlow(ServerCnx.java:1583) [pulsar-broker.jar:2.10.1.1-SNAPSHOT]
   ```
   
    
   
   And this is the Failover subscription
   
   ```
   2022-06-30T12:25:07,666+0200 [broker-topic-workers-OrderedExecutor-3-0] INFO  org.apache.bookkeeper.mledger.offload.jcloud.impl.BlobStoreBackedReadHandleImpl - Ledger 0: reading 195 - 237
   java.lang.Exception: Reading 195 237
   at org.apache.bookkeeper.mledger.offload.jcloud.impl.BlobStoreBackedReadHandleImpl.readAsync(BlobStoreBackedReadHandleImpl.java:105) ~[?:?]
   at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry0(EntryCacheImpl.java:292) ~[managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at org.apache.bookkeeper.mledger.impl.EntryCacheImpl.asyncReadEntry(EntryCacheImpl.java:242) ~[managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntry(ManagedLedgerImpl.java:1997) ~[managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.internalReadFromLedger(ManagedLedgerImpl.java:1969) ~[managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.lambda$asyncReadEntries$17(ManagedLedgerImpl.java:1779) ~[managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at java.util.concurrent.CompletableFuture.uniAcceptNow(CompletableFuture.java:753) ~[?:?]
   at java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:731) ~[?:?]
   at java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:2108) ~[?:?]
   at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncReadEntries(ManagedLedgerImpl.java:1779) ~[managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.asyncReadEntries(ManagedCursorImpl.java:721) ~[managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.asyncReadEntries(ManagedCursorImpl.java:704) ~[managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.asyncReadEntriesOrWait(ManagedCursorImpl.java:855) ~[managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at org.apache.pulsar.broker.service.persistent.PersistentDispatcherSingleActiveConsumer.readMoreEntries(PersistentDispatcherSingleActiveConsumer.java:363) ~[pulsar-broker.jar:2.10.1.1-SNAPSHOT]
   at org.apache.pulsar.broker.service.persistent.PersistentDispatcherSingleActiveConsumer.internalConsumerFlow(PersistentDispatcherSingleActiveConsumer.java:285) ~[pulsar-broker.jar:2.10.1.1-SNAPSHOT]
   at org.apache.pulsar.broker.service.persistent.PersistentDispatcherSingleActiveConsumer.lambda$consumerFlow$5(PersistentDispatcherSingleActiveConsumer.java:261) ~[pulsar-broker.jar:2.10.1.1-SNAPSHOT]
   at org.apache.bookkeeper.mledger.util.SafeRun$1.safeRun(SafeRun.java:32) [managed-ledger.jar:2.10.1.1-SNAPSHOT]
   at org.apache.bookkeeper.common.util.SafeRunnable.run(SafeRunnable.java:36) [bookkeeper-common-4.14.5.1.0.1.jar:4.14.5.1.0.1]
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
   at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.77.Final.jar:4.1.77.Final]
   at java.lang.Thread.run(Thread.java:829) [?:?]
   ```


-- 
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-unsubscribe@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org