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/09/23 10:47:37 UTC

[GitHub] [pulsar] eolivelli commented on pull request #17762: Make BookieId work with PulsarRegistrationDriver

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

   We have a problem with this PR.
   There is a deadlock, as we are doing a blocking call to the metadatastore inside the metadata store main thread.
   
   I have seen this problem the first time we implemented getBookieServiceInfo in BookKeeper in the ZKRegistrationClient.
   
   I am working on it
   
   ```
   "metadata-store-5239-1" #14301 prio=5 os_prio=31 cpu=41.80ms elapsed=872.17s tid=0x00007fdd1df77800 nid=0x6630f waiting on condition  [0x0000700015c3c000]
      java.lang.Thread.State: WAITING (parking)
           at jdk.internal.misc.Unsafe.park(java.base@11.0.13/Native Method)
           - parking to wait for  <0x00000007d5868310> (a java.util.concurrent.CompletableFuture$Signaller)
           at java.util.concurrent.locks.LockSupport.park(java.base@11.0.13/LockSupport.java:194)
           at java.util.concurrent.CompletableFuture$Signaller.block(java.base@11.0.13/CompletableFuture.java:1796)
           at java.util.concurrent.ForkJoinPool.managedBlock(java.base@11.0.13/ForkJoinPool.java:3128)
           at java.util.concurrent.CompletableFuture.waitingGet(java.base@11.0.13/CompletableFuture.java:1823)
           at java.util.concurrent.CompletableFuture.get(java.base@11.0.13/CompletableFuture.java:1998)
           at org.apache.bookkeeper.common.concurrent.FutureUtils.result(FutureUtils.java:72)
           at org.apache.bookkeeper.common.concurrent.FutureUtils.result(FutureUtils.java:61)
           at org.apache.bookkeeper.client.DefaultBookieAddressResolver.resolve(DefaultBookieAddressResolver.java:43)
           at org.apache.bookkeeper.client.TopologyAwareEnsemblePlacementPolicy.resolveNetworkLocation(TopologyAwareEnsemblePlacementPolicy.java:804)
           at org.apache.bookkeeper.client.TopologyAwareEnsemblePlacementPolicy.createBookieNode(TopologyAwareEnsemblePlacementPolicy.java:794)
           at org.apache.bookkeeper.client.TopologyAwareEnsemblePlacementPolicy.convertBookiesToNodes(TopologyAwareEnsemblePlacementPolicy.java:822)
           at org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicyImpl.newEnsembleInternal(RackawareEnsemblePlacementPolicyImpl.java:390)
           at org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicyImpl.newEnsemble(RackawareEnsemblePlacementPolicyImpl.java:356)
           at org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicy.newEnsemble(RackawareEnsemblePlacementPolicy.java:104)
           at org.apache.pulsar.bookie.rackawareness.IsolatedBookieEnsemblePlacementPolicy.newEnsemble(IsolatedBookieEnsemblePlacementPolicy.java:131)
           at org.apache.bookkeeper.client.BookieWatcherImpl.newEnsemble(BookieWatcherImpl.java:270)
           at org.apache.bookkeeper.client.LedgerCreateOp.initiate(LedgerCreateOp.java:161)
           at org.apache.bookkeeper.client.BookKeeper.asyncCreateLedger(BookKeeper.java:860)
           at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.asyncCreateLedger(ManagedLedgerImpl.java:3809)
           at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.initializeBookKeeper(ManagedLedgerImpl.java:500)
           - locked <0x00000007d58685a0> (a org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl)
           at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.access$400(ManagedLedgerImpl.java:147)
           at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl$1.operationComplete(ManagedLedgerImpl.java:434)
           at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl$1.operationComplete(ManagedLedgerImpl.java:366)
           at org.apache.bookkeeper.mledger.impl.MetaStoreImpl.lambda$getManagedLedgerInfo$1(MetaStoreImpl.java:127)
           at org.apache.bookkeeper.mledger.impl.MetaStoreImpl$$Lambda$842/0x0000000800928c40.accept(Unknown Source)
           at java.util.concurrent.CompletableFuture$UniAccept.tryFire(java.base@11.0.13/CompletableFuture.java:714)
           at java.util.concurrent.CompletableFuture.postComplete(java.base@11.0.13/CompletableFuture.java:506)
           at java.util.concurrent.CompletableFuture.complete(java.base@11.0.13/CompletableFuture.java:2073)
           at org.apache.pulsar.metadata.impl.ZKMetadataStore.lambda$internalStorePut$12(ZKMetadataStore.java:369)
           at org.apache.pulsar.metadata.impl.ZKMetadataStore$$Lambda$288/0x0000000800512040.run(Unknown Source)
           at java.util.concurrent.Executors$RunnableAdapter.call(java.base@11.0.13/Executors.java:515)
           at java.util.concurrent.FutureTask.run(java.base@11.0.13/FutureTask.java:264)
           at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(java.base@11.0.13/ScheduledThreadPoolExecutor.java:304)
           at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.13/ThreadPoolExecutor.java:1128)
           at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.13/ThreadPoolExecutor.java:628)
           at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
           at java.lang.Thread.run(java.base@11.0.13/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