[ 
https://issues.apache.org/jira/browse/IGNITE-20012?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladislav Pyatkov updated IGNITE-20012:
---------------------------------------
    Description: 
A RAFT client is closed in two places:
* {{InternalTableImpl#updateInternalTableRaftGroupService}} when the table 
creates
* {{InternalTableImpl#close}} when the table stops
The first happens under updatePartitionMapsMux, but the second does not.
Due to concurrency, the RAFT client might be closed several times, but when we 
close again, the busy write lock has already been acquired, so we hand in 
infinit wating.
{noformat}
"Test worker" #1 prio=5 os_prio=0 cpu=84323.53ms elapsed=3507.65s 
tid=0x00007f224402d000 nid=0x153c93 waiting on condition  [0x00007f22493f0000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep([email protected]/Native Method)
        at 
org.apache.ignite.internal.util.IgniteSpinReadWriteLock.writeLock(IgniteSpinReadWriteLock.java:255)
        at 
org.apache.ignite.internal.util.IgniteSpinBusyLock.block(IgniteSpinBusyLock.java:68)
        at 
org.apache.ignite.internal.raft.RaftGroupServiceImpl.shutdown(RaftGroupServiceImpl.java:463)
        at 
org.apache.ignite.internal.raft.client.TopologyAwareRaftGroupService.shutdown(TopologyAwareRaftGroupService.java:430)
        at 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl$$Lambda$3966/0x0000000801135040.close(Unknown
 Source)
        at 
org.apache.ignite.internal.util.IgniteUtils.lambda$closeAllManually$1(IgniteUtils.java:685)
        at 
org.apache.ignite.internal.util.IgniteUtils$$Lambda$3937/0x000000080112c440.accept(Unknown
 Source)
        at 
java.util.stream.ForEachOps$ForEachOp$OfRef.accept([email protected]/ForEachOps.java:183)
        at 
java.util.stream.ReferencePipeline$2$1.accept([email protected]/ReferencePipeline.java:177)
        at 
java.util.stream.StreamSpliterators$WrappingSpliterator$$Lambda$38/0x000000080008b040.accept([email protected]/Unknown
 Source)
        at 
java.util.stream.ReferencePipeline$3$1.accept([email protected]/ReferencePipeline.java:195)
        at 
it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$ValueSpliterator.acceptOnIndex(Int2ObjectOpenHashMap.java:1221)
        at 
it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$ValueSpliterator.acceptOnIndex(Int2ObjectOpenHashMap.java:1205)
        at 
it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapSpliterator.forEachRemaining(Int2ObjectOpenHashMap.java:876)
        at 
it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$ValueSpliterator.forEachRemaining(Int2ObjectOpenHashMap.java:1205)
        at 
java.util.stream.AbstractPipeline.copyInto([email protected]/AbstractPipeline.java:484)
        at 
java.util.stream.AbstractPipeline.wrapAndCopyInto([email protected]/AbstractPipeline.java:474)
        at 
java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining([email protected]/StreamSpliterators.java:312)
        at 
java.util.stream.Streams$ConcatSpliterator.forEachRemaining([email protected]/Streams.java:734)
        at 
java.util.stream.AbstractPipeline.copyInto([email protected]/AbstractPipeline.java:484)
        at 
java.util.stream.AbstractPipeline.wrapAndCopyInto([email protected]/AbstractPipeline.java:474)
        at 
java.util.stream.ForEachOps$ForEachOp.evaluateSequential([email protected]/ForEachOps.java:150)
        at 
java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential([email protected]/ForEachOps.java:173)
        at 
java.util.stream.AbstractPipeline.evaluate([email protected]/AbstractPipeline.java:234)
        at 
java.util.stream.ReferencePipeline.forEach([email protected]/ReferencePipeline.java:497)
        at 
org.apache.ignite.internal.util.IgniteUtils.closeAllManually(IgniteUtils.java:683)
        at 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.close(InternalTableImpl.java:1649)
        at 
org.apache.ignite.internal.util.IgniteUtils.lambda$closeAllManually$1(IgniteUtils.java:685)
        at 
org.apache.ignite.internal.util.IgniteUtils$$Lambda$3937/0x000000080112c440.accept(Unknown
 Source)
        at 
java.util.stream.ForEachOps$ForEachOp$OfRef.accept([email protected]/ForEachOps.java:183)
        at 
java.util.stream.ReferencePipeline$2$1.accept([email protected]/ReferencePipeline.java:177)
        at 
java.util.Spliterators$ArraySpliterator.forEachRemaining([email protected]/Spliterators.java:948)
        at 
java.util.stream.AbstractPipeline.copyInto([email protected]/AbstractPipeline.java:484)
        at 
java.util.stream.AbstractPipeline.wrapAndCopyInto([email protected]/AbstractPipeline.java:474)
        at 
java.util.stream.ForEachOps$ForEachOp.evaluateSequential([email protected]/ForEachOps.java:150)
        at 
java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential([email protected]/ForEachOps.java:173)
        at 
java.util.stream.AbstractPipeline.evaluate([email protected]/AbstractPipeline.java:234)
        at 
java.util.stream.ReferencePipeline.forEach([email protected]/ReferencePipeline.java:497)
        at 
org.apache.ignite.internal.util.IgniteUtils.closeAllManually(IgniteUtils.java:683)
        at 
org.apache.ignite.internal.util.IgniteUtils.closeAllManually(IgniteUtils.java:706)
        at 
org.apache.ignite.internal.table.distributed.TableManager.cleanUpTablesResources(TableManager.java:1397)
        at 
org.apache.ignite.internal.table.distributed.TableManager.stop(TableManager.java:1320)
        at 
org.apache.ignite.internal.app.LifecycleManager.lambda$stopAllComponents$1(LifecycleManager.java:133)
        at 
org.apache.ignite.internal.app.LifecycleManager$$Lambda$3900/0x000000080111a440.accept(Unknown
 Source)
        at 
java.util.Iterator.forEachRemaining([email protected]/Iterator.java:133)
        at 
org.apache.ignite.internal.app.LifecycleManager.stopAllComponents(LifecycleManager.java:131)
        - locked <0x0000000415da2360> (a 
org.apache.ignite.internal.app.LifecycleManager)
        at 
org.apache.ignite.internal.app.LifecycleManager.stopNode(LifecycleManager.java:115)
        at org.apache.ignite.internal.app.IgniteImpl.stop(IgniteImpl.java:847)
        at 
org.apache.ignite.internal.app.IgnitionImpl.lambda$stop$0(IgnitionImpl.java:109)
        at 
org.apache.ignite.internal.app.IgnitionImpl$$Lambda$3856/0x000000080110ec40.apply(Unknown
 Source)
        at 
java.util.concurrent.ConcurrentHashMap.computeIfPresent([email protected]/ConcurrentHashMap.java:1822)
        - locked <0x000000043a838ed0> (a 
java.util.concurrent.ConcurrentHashMap$Node)
        at 
org.apache.ignite.internal.app.IgnitionImpl.stop(IgnitionImpl.java:108)
        at org.apache.ignite.IgnitionManager.stop(IgnitionManager.java:96)
        at org.apache.ignite.IgnitionManager.stop(IgnitionManager.java:82)
        at 
org.apache.ignite.internal.Cluster.lambda$shutdown$11(Cluster.java:429)
        at 
org.apache.ignite.internal.Cluster$$Lambda$4236/0x0000000801312040.accept(Unknown
 Source)
        at java.util.ArrayList.forEach([email protected]/ArrayList.java:1541)
        at org.apache.ignite.internal.Cluster.shutdown(Cluster.java:429)
        at 
org.apache.ignite.internal.raftsnapshot.ItTableRaftSnapshotsTest.shutdownCluster(ItTableRaftSnapshotsTest.java:151)
        at 
jdk.internal.reflect.NativeMethodAccessorImpl.invoke0([email protected]/Native 
Method)
        at 
jdk.internal.reflect.NativeMethodAccessorImpl.invoke([email protected]/NativeMethodAccessorImpl.java:62)
        at 
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke([email protected]/DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke([email protected]/Method.java:566)
        at 
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)

"%node1%JRaft-Request-Processor-37" #113906 daemon prio=10 os_prio=0 cpu=3.06ms 
elapsed=395.00s tid=0x00007f889410d000 nid=0xf4135 waiting on condition  
[0x00007f81b87c5000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
        - parking to wait for  <0x0000000408a88488> (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.join([email protected]/CompletableFuture.java:2043)
        at 
org.apache.ignite.internal.schema.registry.SchemaRegistryImpl.schema(SchemaRegistryImpl.java:90)
        at 
org.apache.ignite.internal.schema.registry.SchemaRegistryImpl.waitLatestSchema(SchemaRegistryImpl.java:128)
        at 
org.apache.ignite.internal.index.IndexManager$TableRowToIndexKeyConverter.createConverter(IndexManager.java:545)
        at 
org.apache.ignite.internal.index.IndexManager$TableRowToIndexKeyConverter.convert(IndexManager.java:530)
        - locked <0x0000000408a88540> (a java.lang.Object)
        at 
org.apache.ignite.internal.index.IndexManager$$Lambda$2740/0x0000000800d83c40.apply(Unknown
 Source)
        at 
org.apache.ignite.internal.table.distributed.HashIndexLocker.locksForLookup(HashIndexLocker.java:65)
        at 
org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.resolveRowByPk(PartitionReplicaListener.java:1333)
        at 
org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.processSingleEntryAction(PartitionReplicaListener.java:1882)
        at 
org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.lambda$processRequest$1(PartitionReplicaListener.java:350)
        at 
org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener$$Lambda$3801/0x000000080109d440.get(Unknown
 Source)
        at 
org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.appendTxCommand(PartitionReplicaListener.java:1406)
        at 
org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.processRequest(PartitionReplicaListener.java:350)
        at 
org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.lambda$invoke$0(PartitionReplicaListener.java:343)
        at 
org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener$$Lambda$2559/0x0000000800d21040.apply(Unknown
 Source)
        at 
java.util.concurrent.CompletableFuture$UniCompose.tryFire([email protected]/CompletableFuture.java:1072)
        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.ignite.internal.raft.RaftGroupServiceImpl.lambda$sendWithRetry$39(RaftGroupServiceImpl.java:541)
        at 
org.apache.ignite.internal.raft.RaftGroupServiceImpl$$Lambda$1443/0x00000008009a8c40.accept(Unknown
 Source)
        at 
java.util.concurrent.CompletableFuture.uniWhenComplete([email protected]/CompletableFuture.java:859)
        at 
java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire([email protected]/CompletableFuture.java:837)
        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.ignite.network.DefaultMessagingService.onInvokeResponse(DefaultMessagingService.java:401)
        at 
org.apache.ignite.network.DefaultMessagingService.send0(DefaultMessagingService.java:200)
        at 
org.apache.ignite.network.DefaultMessagingService.respond(DefaultMessagingService.java:143)
        at 
org.apache.ignite.network.MessagingService.respond(MessagingService.java:89)
        at 
org.apache.ignite.raft.jraft.rpc.impl.IgniteRpcServer$NetworkRpcContext.sendResponse(IgniteRpcServer.java:233)
        at 
org.apache.ignite.raft.jraft.rpc.RpcRequestProcessor.handleRequest(RpcRequestProcessor.java:52)
        at 
org.apache.ignite.raft.jraft.rpc.RpcRequestProcessor.handleRequest(RpcRequestProcessor.java:29)
        at 
org.apache.ignite.raft.jraft.rpc.impl.IgniteRpcServer$RpcMessageHandler.lambda$onReceived$0(IgniteRpcServer.java:192)
        at 
org.apache.ignite.raft.jraft.rpc.impl.IgniteRpcServer$RpcMessageHandler$$Lambda$1442/0x00000008009a8440.run(Unknown
 Source)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
        at java.lang.Thread.run([email protected]/Thread.java:834)
{noformat}
 

  was:
A RAFT client is closed in two places:
* {{InternalTableImpl#updateInternalTableRaftGroupService}} when the table 
creates
* {{InternalTableImpl#close}} when the table stops
The first happens under updatePartitionMapsMux, but the second does not.
Due to concurrency, the RAFT client might be closed several times, but when we 
close again, the busy write lock has already been acquired, so we hand in 
infinit wating.
{noformat}
"Test worker" #1 prio=5 os_prio=0 cpu=84323.53ms elapsed=3507.65s 
tid=0x00007f224402d000 nid=0x153c93 waiting on condition  [0x00007f22493f0000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep([email protected]/Native Method)
        at 
org.apache.ignite.internal.util.IgniteSpinReadWriteLock.writeLock(IgniteSpinReadWriteLock.java:255)
        at 
org.apache.ignite.internal.util.IgniteSpinBusyLock.block(IgniteSpinBusyLock.java:68)
        at 
org.apache.ignite.internal.raft.RaftGroupServiceImpl.shutdown(RaftGroupServiceImpl.java:463)
        at 
org.apache.ignite.internal.raft.client.TopologyAwareRaftGroupService.shutdown(TopologyAwareRaftGroupService.java:430)
        at 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl$$Lambda$3966/0x0000000801135040.close(Unknown
 Source)
        at 
org.apache.ignite.internal.util.IgniteUtils.lambda$closeAllManually$1(IgniteUtils.java:685)
        at 
org.apache.ignite.internal.util.IgniteUtils$$Lambda$3937/0x000000080112c440.accept(Unknown
 Source)
        at 
java.util.stream.ForEachOps$ForEachOp$OfRef.accept([email protected]/ForEachOps.java:183)
        at 
java.util.stream.ReferencePipeline$2$1.accept([email protected]/ReferencePipeline.java:177)
        at 
java.util.stream.StreamSpliterators$WrappingSpliterator$$Lambda$38/0x000000080008b040.accept([email protected]/Unknown
 Source)
        at 
java.util.stream.ReferencePipeline$3$1.accept([email protected]/ReferencePipeline.java:195)
        at 
it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$ValueSpliterator.acceptOnIndex(Int2ObjectOpenHashMap.java:1221)
        at 
it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$ValueSpliterator.acceptOnIndex(Int2ObjectOpenHashMap.java:1205)
        at 
it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapSpliterator.forEachRemaining(Int2ObjectOpenHashMap.java:876)
        at 
it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$ValueSpliterator.forEachRemaining(Int2ObjectOpenHashMap.java:1205)
        at 
java.util.stream.AbstractPipeline.copyInto([email protected]/AbstractPipeline.java:484)
        at 
java.util.stream.AbstractPipeline.wrapAndCopyInto([email protected]/AbstractPipeline.java:474)
        at 
java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining([email protected]/StreamSpliterators.java:312)
        at 
java.util.stream.Streams$ConcatSpliterator.forEachRemaining([email protected]/Streams.java:734)
        at 
java.util.stream.AbstractPipeline.copyInto([email protected]/AbstractPipeline.java:484)
        at 
java.util.stream.AbstractPipeline.wrapAndCopyInto([email protected]/AbstractPipeline.java:474)
        at 
java.util.stream.ForEachOps$ForEachOp.evaluateSequential([email protected]/ForEachOps.java:150)
        at 
java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential([email protected]/ForEachOps.java:173)
        at 
java.util.stream.AbstractPipeline.evaluate([email protected]/AbstractPipeline.java:234)
        at 
java.util.stream.ReferencePipeline.forEach([email protected]/ReferencePipeline.java:497)
        at 
org.apache.ignite.internal.util.IgniteUtils.closeAllManually(IgniteUtils.java:683)
        at 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.close(InternalTableImpl.java:1649)
        at 
org.apache.ignite.internal.util.IgniteUtils.lambda$closeAllManually$1(IgniteUtils.java:685)
        at 
org.apache.ignite.internal.util.IgniteUtils$$Lambda$3937/0x000000080112c440.accept(Unknown
 Source)
        at 
java.util.stream.ForEachOps$ForEachOp$OfRef.accept([email protected]/ForEachOps.java:183)
        at 
java.util.stream.ReferencePipeline$2$1.accept([email protected]/ReferencePipeline.java:177)
        at 
java.util.Spliterators$ArraySpliterator.forEachRemaining([email protected]/Spliterators.java:948)
        at 
java.util.stream.AbstractPipeline.copyInto([email protected]/AbstractPipeline.java:484)
        at 
java.util.stream.AbstractPipeline.wrapAndCopyInto([email protected]/AbstractPipeline.java:474)
        at 
java.util.stream.ForEachOps$ForEachOp.evaluateSequential([email protected]/ForEachOps.java:150)
        at 
java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential([email protected]/ForEachOps.java:173)
        at 
java.util.stream.AbstractPipeline.evaluate([email protected]/AbstractPipeline.java:234)
        at 
java.util.stream.ReferencePipeline.forEach([email protected]/ReferencePipeline.java:497)
        at 
org.apache.ignite.internal.util.IgniteUtils.closeAllManually(IgniteUtils.java:683)
        at 
org.apache.ignite.internal.util.IgniteUtils.closeAllManually(IgniteUtils.java:706)
        at 
org.apache.ignite.internal.table.distributed.TableManager.cleanUpTablesResources(TableManager.java:1397)
        at 
org.apache.ignite.internal.table.distributed.TableManager.stop(TableManager.java:1320)
        at 
org.apache.ignite.internal.app.LifecycleManager.lambda$stopAllComponents$1(LifecycleManager.java:133)
        at 
org.apache.ignite.internal.app.LifecycleManager$$Lambda$3900/0x000000080111a440.accept(Unknown
 Source)
        at 
java.util.Iterator.forEachRemaining([email protected]/Iterator.java:133)
        at 
org.apache.ignite.internal.app.LifecycleManager.stopAllComponents(LifecycleManager.java:131)
        - locked <0x0000000415da2360> (a 
org.apache.ignite.internal.app.LifecycleManager)
        at 
org.apache.ignite.internal.app.LifecycleManager.stopNode(LifecycleManager.java:115)
        at org.apache.ignite.internal.app.IgniteImpl.stop(IgniteImpl.java:847)
        at 
org.apache.ignite.internal.app.IgnitionImpl.lambda$stop$0(IgnitionImpl.java:109)
        at 
org.apache.ignite.internal.app.IgnitionImpl$$Lambda$3856/0x000000080110ec40.apply(Unknown
 Source)
        at 
java.util.concurrent.ConcurrentHashMap.computeIfPresent([email protected]/ConcurrentHashMap.java:1822)
        - locked <0x000000043a838ed0> (a 
java.util.concurrent.ConcurrentHashMap$Node)
        at 
org.apache.ignite.internal.app.IgnitionImpl.stop(IgnitionImpl.java:108)
        at org.apache.ignite.IgnitionManager.stop(IgnitionManager.java:96)
        at org.apache.ignite.IgnitionManager.stop(IgnitionManager.java:82)
        at 
org.apache.ignite.internal.Cluster.lambda$shutdown$11(Cluster.java:429)
        at 
org.apache.ignite.internal.Cluster$$Lambda$4236/0x0000000801312040.accept(Unknown
 Source)
        at java.util.ArrayList.forEach([email protected]/ArrayList.java:1541)
        at org.apache.ignite.internal.Cluster.shutdown(Cluster.java:429)
        at 
org.apache.ignite.internal.raftsnapshot.ItTableRaftSnapshotsTest.shutdownCluster(ItTableRaftSnapshotsTest.java:151)
        at 
jdk.internal.reflect.NativeMethodAccessorImpl.invoke0([email protected]/Native 
Method)
        at 
jdk.internal.reflect.NativeMethodAccessorImpl.invoke([email protected]/NativeMethodAccessorImpl.java:62)
        at 
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke([email protected]/DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke([email protected]/Method.java:566)
        at 
org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
{noformat}
 


> Raft client freezing on stop
> ----------------------------
>
>                 Key: IGNITE-20012
>                 URL: https://issues.apache.org/jira/browse/IGNITE-20012
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Vladislav Pyatkov
>            Priority: Major
>              Labels: ignite-3
>
> A RAFT client is closed in two places:
> * {{InternalTableImpl#updateInternalTableRaftGroupService}} when the table 
> creates
> * {{InternalTableImpl#close}} when the table stops
> The first happens under updatePartitionMapsMux, but the second does not.
> Due to concurrency, the RAFT client might be closed several times, but when 
> we close again, the busy write lock has already been acquired, so we hand in 
> infinit wating.
> {noformat}
> "Test worker" #1 prio=5 os_prio=0 cpu=84323.53ms elapsed=3507.65s 
> tid=0x00007f224402d000 nid=0x153c93 waiting on condition  [0x00007f22493f0000]
>    java.lang.Thread.State: TIMED_WAITING (sleeping)
>         at java.lang.Thread.sleep([email protected]/Native Method)
>         at 
> org.apache.ignite.internal.util.IgniteSpinReadWriteLock.writeLock(IgniteSpinReadWriteLock.java:255)
>         at 
> org.apache.ignite.internal.util.IgniteSpinBusyLock.block(IgniteSpinBusyLock.java:68)
>         at 
> org.apache.ignite.internal.raft.RaftGroupServiceImpl.shutdown(RaftGroupServiceImpl.java:463)
>         at 
> org.apache.ignite.internal.raft.client.TopologyAwareRaftGroupService.shutdown(TopologyAwareRaftGroupService.java:430)
>         at 
> org.apache.ignite.internal.table.distributed.storage.InternalTableImpl$$Lambda$3966/0x0000000801135040.close(Unknown
>  Source)
>         at 
> org.apache.ignite.internal.util.IgniteUtils.lambda$closeAllManually$1(IgniteUtils.java:685)
>         at 
> org.apache.ignite.internal.util.IgniteUtils$$Lambda$3937/0x000000080112c440.accept(Unknown
>  Source)
>         at 
> java.util.stream.ForEachOps$ForEachOp$OfRef.accept([email protected]/ForEachOps.java:183)
>         at 
> java.util.stream.ReferencePipeline$2$1.accept([email protected]/ReferencePipeline.java:177)
>         at 
> java.util.stream.StreamSpliterators$WrappingSpliterator$$Lambda$38/0x000000080008b040.accept([email protected]/Unknown
>  Source)
>         at 
> java.util.stream.ReferencePipeline$3$1.accept([email protected]/ReferencePipeline.java:195)
>         at 
> it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$ValueSpliterator.acceptOnIndex(Int2ObjectOpenHashMap.java:1221)
>         at 
> it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$ValueSpliterator.acceptOnIndex(Int2ObjectOpenHashMap.java:1205)
>         at 
> it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapSpliterator.forEachRemaining(Int2ObjectOpenHashMap.java:876)
>         at 
> it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$ValueSpliterator.forEachRemaining(Int2ObjectOpenHashMap.java:1205)
>         at 
> java.util.stream.AbstractPipeline.copyInto([email protected]/AbstractPipeline.java:484)
>         at 
> java.util.stream.AbstractPipeline.wrapAndCopyInto([email protected]/AbstractPipeline.java:474)
>         at 
> java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining([email protected]/StreamSpliterators.java:312)
>         at 
> java.util.stream.Streams$ConcatSpliterator.forEachRemaining([email protected]/Streams.java:734)
>         at 
> java.util.stream.AbstractPipeline.copyInto([email protected]/AbstractPipeline.java:484)
>         at 
> java.util.stream.AbstractPipeline.wrapAndCopyInto([email protected]/AbstractPipeline.java:474)
>         at 
> java.util.stream.ForEachOps$ForEachOp.evaluateSequential([email protected]/ForEachOps.java:150)
>         at 
> java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential([email protected]/ForEachOps.java:173)
>         at 
> java.util.stream.AbstractPipeline.evaluate([email protected]/AbstractPipeline.java:234)
>         at 
> java.util.stream.ReferencePipeline.forEach([email protected]/ReferencePipeline.java:497)
>         at 
> org.apache.ignite.internal.util.IgniteUtils.closeAllManually(IgniteUtils.java:683)
>         at 
> org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.close(InternalTableImpl.java:1649)
>         at 
> org.apache.ignite.internal.util.IgniteUtils.lambda$closeAllManually$1(IgniteUtils.java:685)
>         at 
> org.apache.ignite.internal.util.IgniteUtils$$Lambda$3937/0x000000080112c440.accept(Unknown
>  Source)
>         at 
> java.util.stream.ForEachOps$ForEachOp$OfRef.accept([email protected]/ForEachOps.java:183)
>         at 
> java.util.stream.ReferencePipeline$2$1.accept([email protected]/ReferencePipeline.java:177)
>         at 
> java.util.Spliterators$ArraySpliterator.forEachRemaining([email protected]/Spliterators.java:948)
>         at 
> java.util.stream.AbstractPipeline.copyInto([email protected]/AbstractPipeline.java:484)
>         at 
> java.util.stream.AbstractPipeline.wrapAndCopyInto([email protected]/AbstractPipeline.java:474)
>         at 
> java.util.stream.ForEachOps$ForEachOp.evaluateSequential([email protected]/ForEachOps.java:150)
>         at 
> java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential([email protected]/ForEachOps.java:173)
>         at 
> java.util.stream.AbstractPipeline.evaluate([email protected]/AbstractPipeline.java:234)
>         at 
> java.util.stream.ReferencePipeline.forEach([email protected]/ReferencePipeline.java:497)
>         at 
> org.apache.ignite.internal.util.IgniteUtils.closeAllManually(IgniteUtils.java:683)
>         at 
> org.apache.ignite.internal.util.IgniteUtils.closeAllManually(IgniteUtils.java:706)
>         at 
> org.apache.ignite.internal.table.distributed.TableManager.cleanUpTablesResources(TableManager.java:1397)
>         at 
> org.apache.ignite.internal.table.distributed.TableManager.stop(TableManager.java:1320)
>         at 
> org.apache.ignite.internal.app.LifecycleManager.lambda$stopAllComponents$1(LifecycleManager.java:133)
>         at 
> org.apache.ignite.internal.app.LifecycleManager$$Lambda$3900/0x000000080111a440.accept(Unknown
>  Source)
>         at 
> java.util.Iterator.forEachRemaining([email protected]/Iterator.java:133)
>         at 
> org.apache.ignite.internal.app.LifecycleManager.stopAllComponents(LifecycleManager.java:131)
>         - locked <0x0000000415da2360> (a 
> org.apache.ignite.internal.app.LifecycleManager)
>         at 
> org.apache.ignite.internal.app.LifecycleManager.stopNode(LifecycleManager.java:115)
>         at org.apache.ignite.internal.app.IgniteImpl.stop(IgniteImpl.java:847)
>         at 
> org.apache.ignite.internal.app.IgnitionImpl.lambda$stop$0(IgnitionImpl.java:109)
>         at 
> org.apache.ignite.internal.app.IgnitionImpl$$Lambda$3856/0x000000080110ec40.apply(Unknown
>  Source)
>         at 
> java.util.concurrent.ConcurrentHashMap.computeIfPresent([email protected]/ConcurrentHashMap.java:1822)
>         - locked <0x000000043a838ed0> (a 
> java.util.concurrent.ConcurrentHashMap$Node)
>         at 
> org.apache.ignite.internal.app.IgnitionImpl.stop(IgnitionImpl.java:108)
>         at org.apache.ignite.IgnitionManager.stop(IgnitionManager.java:96)
>         at org.apache.ignite.IgnitionManager.stop(IgnitionManager.java:82)
>         at 
> org.apache.ignite.internal.Cluster.lambda$shutdown$11(Cluster.java:429)
>         at 
> org.apache.ignite.internal.Cluster$$Lambda$4236/0x0000000801312040.accept(Unknown
>  Source)
>         at java.util.ArrayList.forEach([email protected]/ArrayList.java:1541)
>         at org.apache.ignite.internal.Cluster.shutdown(Cluster.java:429)
>         at 
> org.apache.ignite.internal.raftsnapshot.ItTableRaftSnapshotsTest.shutdownCluster(ItTableRaftSnapshotsTest.java:151)
>         at 
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke0([email protected]/Native
>  Method)
>         at 
> jdk.internal.reflect.NativeMethodAccessorImpl.invoke([email protected]/NativeMethodAccessorImpl.java:62)
>         at 
> jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke([email protected]/DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke([email protected]/Method.java:566)
>         at 
> org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
> "%node1%JRaft-Request-Processor-37" #113906 daemon prio=10 os_prio=0 
> cpu=3.06ms elapsed=395.00s tid=0x00007f889410d000 nid=0xf4135 waiting on 
> condition  [0x00007f81b87c5000]
>    java.lang.Thread.State: WAITING (parking)
>       at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
>       - parking to wait for  <0x0000000408a88488> (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.join([email protected]/CompletableFuture.java:2043)
>       at 
> org.apache.ignite.internal.schema.registry.SchemaRegistryImpl.schema(SchemaRegistryImpl.java:90)
>       at 
> org.apache.ignite.internal.schema.registry.SchemaRegistryImpl.waitLatestSchema(SchemaRegistryImpl.java:128)
>       at 
> org.apache.ignite.internal.index.IndexManager$TableRowToIndexKeyConverter.createConverter(IndexManager.java:545)
>       at 
> org.apache.ignite.internal.index.IndexManager$TableRowToIndexKeyConverter.convert(IndexManager.java:530)
>       - locked <0x0000000408a88540> (a java.lang.Object)
>       at 
> org.apache.ignite.internal.index.IndexManager$$Lambda$2740/0x0000000800d83c40.apply(Unknown
>  Source)
>       at 
> org.apache.ignite.internal.table.distributed.HashIndexLocker.locksForLookup(HashIndexLocker.java:65)
>       at 
> org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.resolveRowByPk(PartitionReplicaListener.java:1333)
>       at 
> org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.processSingleEntryAction(PartitionReplicaListener.java:1882)
>       at 
> org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.lambda$processRequest$1(PartitionReplicaListener.java:350)
>       at 
> org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener$$Lambda$3801/0x000000080109d440.get(Unknown
>  Source)
>       at 
> org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.appendTxCommand(PartitionReplicaListener.java:1406)
>       at 
> org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.processRequest(PartitionReplicaListener.java:350)
>       at 
> org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.lambda$invoke$0(PartitionReplicaListener.java:343)
>       at 
> org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener$$Lambda$2559/0x0000000800d21040.apply(Unknown
>  Source)
>       at 
> java.util.concurrent.CompletableFuture$UniCompose.tryFire([email protected]/CompletableFuture.java:1072)
>       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.ignite.internal.raft.RaftGroupServiceImpl.lambda$sendWithRetry$39(RaftGroupServiceImpl.java:541)
>       at 
> org.apache.ignite.internal.raft.RaftGroupServiceImpl$$Lambda$1443/0x00000008009a8c40.accept(Unknown
>  Source)
>       at 
> java.util.concurrent.CompletableFuture.uniWhenComplete([email protected]/CompletableFuture.java:859)
>       at 
> java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire([email protected]/CompletableFuture.java:837)
>       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.ignite.network.DefaultMessagingService.onInvokeResponse(DefaultMessagingService.java:401)
>       at 
> org.apache.ignite.network.DefaultMessagingService.send0(DefaultMessagingService.java:200)
>       at 
> org.apache.ignite.network.DefaultMessagingService.respond(DefaultMessagingService.java:143)
>       at 
> org.apache.ignite.network.MessagingService.respond(MessagingService.java:89)
>       at 
> org.apache.ignite.raft.jraft.rpc.impl.IgniteRpcServer$NetworkRpcContext.sendResponse(IgniteRpcServer.java:233)
>       at 
> org.apache.ignite.raft.jraft.rpc.RpcRequestProcessor.handleRequest(RpcRequestProcessor.java:52)
>       at 
> org.apache.ignite.raft.jraft.rpc.RpcRequestProcessor.handleRequest(RpcRequestProcessor.java:29)
>       at 
> org.apache.ignite.raft.jraft.rpc.impl.IgniteRpcServer$RpcMessageHandler.lambda$onReceived$0(IgniteRpcServer.java:192)
>       at 
> org.apache.ignite.raft.jraft.rpc.impl.IgniteRpcServer$RpcMessageHandler$$Lambda$1442/0x00000008009a8440.run(Unknown
>  Source)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1128)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:628)
>       at java.lang.Thread.run([email protected]/Thread.java:834)
> {noformat}
>  



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

Reply via email to