[ https://issues.apache.org/jira/browse/IGNITE-6815?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dmitriy Pavlov updated IGNITE-6815: ----------------------------------- Fix Version/s: (was: 2.4) (was: 2.3) (was: 2.2) 2.5 > "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 > Components: cache, streaming > Affects Versions: 2.2, 2.3, 2.4 > 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 > Labels: pull-request-available > Fix For: 2.5 > > > 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 (version 2.3.0 release package from maven public repo): > {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 (v7.6.3#76005)