Search in sources :

Example 1 with CorruptedFreeListException

use of org.apache.ignite.internal.processors.cache.persistence.freelist.CorruptedFreeListException in project ignite by apache.

the class PagesPossibleCorruptionDiagnosticTest method testDiagnosticCollectedOnCorruptedPageList.

/**
 * Tests page list pages are collected in {@link CorruptedFreeListException}.
 */
@Test
@WithSystemProperty(key = IgniteSystemProperties.IGNITE_PAGES_LIST_DISABLE_ONHEAP_CACHING, value = "true")
public void testDiagnosticCollectedOnCorruptedPageList() throws Exception {
    IgniteEx ignite = startGrid(0);
    ignite.cluster().state(ClusterState.ACTIVE);
    IgniteCache<Integer, Integer> cache = ignite.getOrCreateCache(new CacheConfiguration<Integer, Integer>(DEFAULT_CACHE_NAME).setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL).setAffinity(new RendezvousAffinityFunction(false, 1)));
    cache.put(1, 1);
    cache.remove(1);
    int grpId = cacheGroupId(DEFAULT_CACHE_NAME, null);
    IgniteCacheOffheapManager.CacheDataStore dataStore = ignite.context().cache().cacheGroup(grpId).offheap().cacheDataStores().iterator().next();
    GridCacheOffheapManager.GridCacheDataStore store = (GridCacheOffheapManager.GridCacheDataStore) dataStore;
    AbstractFreeList freeList = store.getCacheStoreFreeList();
    ReuseBag bag = new LongListReuseBag();
    bag.addFreePage(pageId(0, FLAG_DATA, 10));
    bag.addFreePage(pageId(0, FLAG_DATA, 11));
    long[] pages = null;
    try {
        freeList.addForRecycle(bag);
    } catch (CorruptedFreeListException e) {
        pages = e.pageIds();
    }
    assertNotNull(pages);
}
Also used : LongListReuseBag(org.apache.ignite.internal.processors.cache.persistence.tree.reuse.LongListReuseBag) IgniteCacheOffheapManager(org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManager) LongListReuseBag(org.apache.ignite.internal.processors.cache.persistence.tree.reuse.LongListReuseBag) ReuseBag(org.apache.ignite.internal.processors.cache.persistence.tree.reuse.ReuseBag) AbstractFreeList(org.apache.ignite.internal.processors.cache.persistence.freelist.AbstractFreeList) IgniteEx(org.apache.ignite.internal.IgniteEx) CorruptedFreeListException(org.apache.ignite.internal.processors.cache.persistence.freelist.CorruptedFreeListException) RendezvousAffinityFunction(org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction) GridCommonAbstractTest(org.apache.ignite.testframework.junits.common.GridCommonAbstractTest) Test(org.junit.Test) WithSystemProperty(org.apache.ignite.testframework.junits.WithSystemProperty)

Aggregations

RendezvousAffinityFunction (org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction)1 IgniteEx (org.apache.ignite.internal.IgniteEx)1 IgniteCacheOffheapManager (org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManager)1 AbstractFreeList (org.apache.ignite.internal.processors.cache.persistence.freelist.AbstractFreeList)1 CorruptedFreeListException (org.apache.ignite.internal.processors.cache.persistence.freelist.CorruptedFreeListException)1 LongListReuseBag (org.apache.ignite.internal.processors.cache.persistence.tree.reuse.LongListReuseBag)1 ReuseBag (org.apache.ignite.internal.processors.cache.persistence.tree.reuse.ReuseBag)1 WithSystemProperty (org.apache.ignite.testframework.junits.WithSystemProperty)1 GridCommonAbstractTest (org.apache.ignite.testframework.junits.common.GridCommonAbstractTest)1 Test (org.junit.Test)1