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

Alexey Goncharuk commented on IGNITE-8640:
------------------------------------------

[~garus.d.g], I see an intermittent failure of Cache 7 test suite 
(IgniteAbstractDynamicCacheStartFailTest#testBrokenCacheStoreOnAllNodes) 
sometimes on TC. The test fails in master as well, however from the failure 
context it seems that it may be covered by this ticket. Can you please asses 
whether you can fix this?
>From a quick debug I see that the NPE is caused by the fact that we did not 
>call {{GridDhtPartitionTopologyImpl#updateTopologyVersion}} because of the 
>simulated exception, but later during PME we attempt to call 
>{{afterStateRestored()}} for this group, so it looks like that the started 
>group is not cleared from the groups collection.

> If first createCache fail - Ignite is freezing on next createCache
> ------------------------------------------------------------------
>
>                 Key: IGNITE-8640
>                 URL: https://issues.apache.org/jira/browse/IGNITE-8640
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>    Affects Versions: 2.6
>            Reporter: Nikolay Izhikov
>            Assignee: Denis Garus
>            Priority: Critical
>             Fix For: 2.8
>
>
> If first {{createCache}} operation fails on some condition inside 
> {{GridCacheProcessor#validate}} then second {{createCache}} will freeze 
> forever.
> Reproducer:
> {code:java}
> package org.apache.ignite.internal.processors.cache;
> import org.apache.ignite.IgniteCache;
> import org.apache.ignite.IgniteCheckedException;
> import org.apache.ignite.cache.eviction.fifo.FifoEvictionPolicy;
> import org.apache.ignite.configuration.CacheConfiguration;
> import org.apache.ignite.internal.IgniteEx;
> import org.apache.ignite.testframework.GridTestUtils;
> import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
> public class CreateCacheFreezeTest extends GridCommonAbstractTest {
>     public void testCreateEncryptedNotPersistedCacheFail() throws Exception {
>         IgniteEx ignite = startGrid(0);
>         
>         GridTestUtils.assertThrowsWithCause(() -> {
>             CacheConfiguration<Long, String> cc = new 
> CacheConfiguration<>("failed");
>             cc.setEvictionPolicy(new FifoEvictionPolicy());
>             cc.setOnheapCacheEnabled(false);
>             ignite.createCache(cc);
>             return 0;
>         }, IgniteCheckedException.class);
>         IgniteCache<Long, String> cache = ignite.createCache(new 
> CacheConfiguration<>("default"));
>         assertNotNull(cache);
>     }
> }
> {code}
> Log message:
> {noformat}
> [2018-05-29 
> 16:38:11,958][ERROR][exchange-worker-#38%cache.CreateCacheFreezeTest0%][GridDhtPartitionsExchangeFuture]
>  Failed to reinitialize local partitions (preloading will be stopped): 
> GridDhtPartitionExchangeId [topVer=AffinityTopologyVersion [topVer=1, 
> minorTopVer=1], discoEvt=DiscoveryCustomEvent 
> [customMsg=DynamicCacheChangeBatch 
> [id=67cce1ca361-993dd9c2-f4fe-443b-af43-27e06424e1b0, 
> reqs=[DynamicCacheChangeRequest [cacheName=failed, hasCfg=true, 
> nodeId=a525b74c-aec5-4c62-855a-ff96ef300000, clientStartOnly=false, 
> stop=false, destroy=false, disabledAfterStartfalse]], 
> exchangeActions=ExchangeActions [startCaches=[failed], stopCaches=null, 
> startGrps=[failed], stopGrps=[], resetParts=null, stateChangeRequest=null], 
> startCaches=false], affTopVer=AffinityTopologyVersion [topVer=1, 
> minorTopVer=1], super=DiscoveryEvent [evtNode=TcpDiscoveryNode 
> [id=a525b74c-aec5-4c62-855a-ff96ef300000, addrs=[127.0.0.1], 
> sockAddrs=[/127.0.0.1:47500], discPort=47500, order=1, intOrder=1, 
> lastExchangeTime=1527601090538, loc=true, ver=2.5.0#19700101-sha1:00000000, 
> isClient=false], topVer=1, nodeId8=a525b74c, msg=null, 
> type=DISCOVERY_CUSTOM_EVT, tstamp=1527601091938]], nodeId=a525b74c, 
> evt=DISCOVERY_CUSTOM_EVT]
> java.lang.AssertionError: stopping=false, groupName=null, caches=[]
>       at 
> org.apache.ignite.internal.processors.cache.CacheGroupContext.singleCacheContext(CacheGroupContext.java:375)
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition.<init>(GridDhtLocalPartition.java:197)
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionTopologyImpl.getOrCreatePartition(GridDhtPartitionTopologyImpl.java:828)
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionTopologyImpl.initPartitions(GridDhtPartitionTopologyImpl.java:369)
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionTopologyImpl.beforeExchange(GridDhtPartitionTopologyImpl.java:544)
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.distributedExchange(GridDhtPartitionsExchangeFuture.java:1190)
>       at 
> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:722)
>       at 
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body0(GridCachePartitionExchangeManager.java:2452)
>       at 
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:2332)
>       at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
>       at java.lang.Thread.run(Thread.java:748)
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to