You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Tristan Burch (JIRA)" <ji...@apache.org> on 2018/05/25 21:45:00 UTC
[jira] [Commented] (IGNITE-6815) "Unexpected exception during cache
update" via NullPointerException thrown using TouchedExpiryPolicy
[ https://issues.apache.org/jira/browse/IGNITE-6815?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16491299#comment-16491299 ]
Tristan Burch commented on IGNITE-6815:
---------------------------------------
I ran into this issue and it also appears that the same thing is triggered with a `AccessedExpiryPolicy`. Will the PR also fix that?
> "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
> Assignee: 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)