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([email protected]/Native Method)
           - parking to wait for  <0x00000007d5868310> (a 
java.util.concurrent.CompletableFuture$Signaller)
           at 
java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:194)
           at 
java.util.concurrent.CompletableFuture$Signaller.block([email protected]/CompletableFuture.java:1796)
           at 
java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3128)
           at 
java.util.concurrent.CompletableFuture.waitingGet([email protected]/CompletableFuture.java:1823)
           at 
java.util.concurrent.CompletableFuture.get([email protected]/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([email protected]/CompletableFuture.java:714)
           at 
java.util.concurrent.CompletableFuture.postComplete([email protected]/CompletableFuture.java:506)
           at 
java.util.concurrent.CompletableFuture.complete([email protected]/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([email protected]/Executors.java:515)
           at 
java.util.concurrent.FutureTask.run([email protected]/FutureTask.java:264)
           at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run([email protected]/ScheduledThreadPoolExecutor.java:304)
           at 
java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128)
           at 
java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
           at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
           at java.lang.Thread.run([email protected]/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: [email protected]

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

Reply via email to