You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Reed Sandberg (JIRA)" <ji...@apache.org> on 2017/11/02 00:54:03 UTC

[jira] [Created] (IGNITE-6815) "Unexpected exception during cache update" via NullPointerException thrown using TouchedExpiryPolicy

Reed Sandberg created IGNITE-6815:
-------------------------------------

             Summary: "Unexpected exception during cache update" via NullPointerException thrown using TouchedExpiryPolicy
                 Key: IGNITE-6815
                 URL: https://issues.apache.org/jira/browse/IGNITE-6815
             Project: Ignite
          Issue Type: Bug
      Security Level: Public (Viewable by anyone)
          Components: cache, streaming
    Affects Versions: 2.3, 2.2
         Environment: 4.10.0-33-generic #37~16.04.1-Ubuntu SMP Fri Aug 11 14:07:24 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Distributor ID:	LinuxMint
Description:	Linux Mint 18.2 Sonya
Release:	18.2
Codename:	sonya


            Reporter: Reed Sandberg
            Priority: Major


This is triggered when I apply an expiry on the cache during an import with StreamLoader, with no expiry on the cache, the import runs fine.

Somehow the following line of code is hit with val == null:
org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java:1253

Stack trace:

{noformat}
16:04:25.259 ERROR o.a.i.i.p.c.d.d.a.GridDhtAtomicCache - <devid-dbid-map> Unexpected exception during cache update
org.apache.ignite.IgniteException: Runtime failure on search row: org.apache.ignite.internal.processors.cache.tree.SearchRow@68a4e885
	at org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.invoke(BPlusTree.java:1632)
	at org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke(IgniteCacheOffheapManagerImpl.java:1201)
	at org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.invoke(IgniteCacheOffheapManagerImpl.java:343)
	at org.apache.ignite.internal.processors.cache.GridCacheMapEntry.innerUpdate(GridCacheMapEntry.java:1693)
	at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateSingle(GridDhtAtomicCache.java:2419)
	at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.update(GridDhtAtomicCache.java:1882)
	at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal0(GridDhtAtomicCache.java:1735)
	at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal(GridDhtAtomicCache.java:1627)
	at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.sendSingleRequest(GridNearAtomicAbstractUpdateFuture.java:299)
	at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture.map(GridNearAtomicSingleUpdateFuture.java:483)
	at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicSingleUpdateFuture.mapOnTopology(GridNearAtomicSingleUpdateFuture.java:443)
	at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.map(GridNearAtomicAbstractUpdateFuture.java:248)
	at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.update0(GridDhtAtomicCache.java:1116)
	at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.invoke0(GridDhtAtomicCache.java:825)
	at org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.invoke(GridDhtAtomicCache.java:783)
	at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.invoke(IgniteCacheProxyImpl.java:1338)
	at org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.invoke(GatewayProtectedCacheProxy.java:1320)
	at org.apache.ignite.stream.StreamTransformer.receive(StreamTransformer.java:45)
	at org.apache.ignite.internal.processors.datastreamer.DataStreamerUpdateJob.call(DataStreamerUpdateJob.java:137)
	at org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6631)
	at org.apache.ignite.internal.processors.closure.GridClosureProcessor$2.body(GridClosureProcessor.java:967)
	at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
	at org.apache.ignite.internal.util.StripedExecutor$Stripe.run(StripedExecutor.java:505)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException: null
	at org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.createRow(IgniteCacheOffheapManagerImpl.java:1253)
	at org.apache.ignite.internal.processors.cache.GridCacheMapEntry$AtomicCacheUpdateClosure.initResultOnCancelUpdate(GridCacheMapEntry.java:4267)
	at org.apache.ignite.internal.processors.cache.GridCacheMapEntry$AtomicCacheUpdateClosure.call(GridCacheMapEntry.java:4154)
	at org.apache.ignite.internal.processors.cache.GridCacheMapEntry$AtomicCacheUpdateClosure.call(GridCacheMapEntry.java:3918)
	at org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$Invoke.invokeClosure(BPlusTree.java:2988)
	at org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$Invoke.access$6200(BPlusTree.java:2882)
	at org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.invokeDown(BPlusTree.java:1719)
	at org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.invoke(BPlusTree.java:1602)
	... 23 common frames omitted
{noformat}


The NPE seems to be triggered only when applying a TTL to the cache:

{noformat}
        CacheConfiguration<DeviceId, DeviceIdCacheEntry> ccDevidCache =
                new CacheConfiguration<>();
        ccDevidCache = ccDevidCache.setExpiryPolicyFactory(FactoryBuilder.factoryOf(
                new TouchedExpiryPolicy(new Duration(DAYS, GRAPH_CACHE_TTL))))
                .setEagerTtl(true)
                .setName("devid-dbid-map");
        ignite.getOrCreateCache(ccDevidCache);
{noformat}


However it works fine with a 'plain' cache config:

{noformat}
ignite.createCache("devid-dbid-map");
{noformat}






--
This message was sent by Atlassian JIRA
(v6.4.14#64029)