[ 
https://issues.apache.org/jira/browse/IGNITE-18453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17731570#comment-17731570
 ] 

Evgeny Stanilovsky commented on IGNITE-18453:
---------------------------------------------

As i can see, implementations is changed and now blocking place is :

{noformat}
InternalTableImpl#primaryReplicas() {
...
        for (CompletableFuture<LeaderWithTerm> fut : futs) {
            LeaderWithTerm leaderWithTerm = fut.join();
{noformat}

Also seems this issue become actual after [1] implementation.

[1] https://issues.apache.org/jira/browse/IGNITE-18856

> Query executor thread synchronously waits for leaders on query mapping.
> -----------------------------------------------------------------------
>
>                 Key: IGNITE-18453
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18453
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Andrey Mashenkov
>            Assignee: Evgeny Stanilovsky
>            Priority: Major
>              Labels: ignite-3
>
> If some table/partition lost the quorum, sql-execution-pool threads may stuck 
> and prevent other queries over another table/partition from being executed. 
> {noformat}
> "%node3%sql-execution-pool-1@65077" daemon prio=5 tid=0x8b81 nid=NA waiting
>   java.lang.Thread.State: WAITING
>         at jdk.internal.misc.Unsafe.park(Unsafe.java:-1)
>         at java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
>         at 
> java.util.concurrent.CompletableFuture$Signaller.block(CompletableFuture.java:1796)
>         at 
> java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3128)
>         at 
> java.util.concurrent.CompletableFuture.waitingGet(CompletableFuture.java:1823)
>         at 
> java.util.concurrent.CompletableFuture.join(CompletableFuture.java:2043)
>         at 
> org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.awaitLeaderInitialization(InternalTableImpl.java:1055)
>         at 
> org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.assignments(InternalTableImpl.java:1004)
>         at 
> org.apache.ignite.internal.sql.engine.schema.IgniteTableImpl.partitionedGroup(IgniteTableImpl.java:484)
>         at 
> org.apache.ignite.internal.sql.engine.schema.IgniteTableImpl.colocationGroup(IgniteTableImpl.java:228)
>         at 
> org.apache.ignite.internal.sql.engine.metadata.IgniteMdFragmentMapping.getFragmentMapping(IgniteMdFragmentMapping.java:228)
>         at 
> org.apache.ignite.internal.sql.engine.metadata.IgniteMdFragmentMapping.fragmentMapping(IgniteMdFragmentMapping.java:210)
>         at 
> org.apache.calcite.rel.metadata.janino.GeneratedMetadata_FragmentMappingMetadataHandler.fragmentMapping_$(Unknown
>  Source:-1)
>         at 
> org.apache.calcite.rel.metadata.janino.GeneratedMetadata_FragmentMappingMetadataHandler.fragmentMapping(Unknown
>  Source:-1)
>         at 
> org.apache.ignite.internal.sql.engine.metadata.RelMetadataQueryEx.fragmentMapping(RelMetadataQueryEx.java:93)
>         at 
> org.apache.ignite.internal.sql.engine.metadata.IgniteMdFragmentMapping.fragmentMappingForMetadataQuery(IgniteMdFragmentMapping.java:70)
>         at 
> org.apache.ignite.internal.sql.engine.metadata.IgniteMdFragmentMapping.fragmentMapping(IgniteMdFragmentMapping.java:101)
>         at 
> org.apache.calcite.rel.metadata.janino.GeneratedMetadata_FragmentMappingMetadataHandler.fragmentMapping_$(Unknown
>  Source:-1)
>         at 
> org.apache.calcite.rel.metadata.janino.GeneratedMetadata_FragmentMappingMetadataHandler.fragmentMapping(Unknown
>  Source:-1)
>         at 
> org.apache.ignite.internal.sql.engine.metadata.RelMetadataQueryEx.fragmentMapping(RelMetadataQueryEx.java:93)
>         at 
> org.apache.ignite.internal.sql.engine.metadata.IgniteMdFragmentMapping.fragmentMappingForMetadataQuery(IgniteMdFragmentMapping.java:70)
>         at 
> org.apache.ignite.internal.sql.engine.prepare.Fragment.mapping(Fragment.java:111)
>         at 
> org.apache.ignite.internal.sql.engine.prepare.Fragment.map(Fragment.java:159)
>         at 
> org.apache.ignite.internal.sql.engine.prepare.QueryTemplate.map(QueryTemplate.java:93)
>         at 
> org.apache.ignite.internal.sql.engine.prepare.QueryTemplate.map(QueryTemplate.java:71)
>         at 
> org.apache.ignite.internal.sql.engine.prepare.AbstractMultiStepPlan.init(AbstractMultiStepPlan.java:108)
>         at 
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.lambda$execute$7(ExecutionServiceImpl.java:569)
>         at 
> org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager$$Lambda$2890.610213979.run(Unknown
>  Source:-1)
>         at 
> org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:80)
>         at 
> org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl$$Lambda$1902.2051055833.run(Unknown
>  Source:-1)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>         at java.lang.Thread.run(Thread.java:829)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to