Hi Dmitry, Checkout to new branch and execute: git pull https://github.com/reed-sandberg/ignite.git rsandberg/IGNITE-6815-expiry-npe
or just download and apply the patch: https://patch-diff.githubusercontent.com/raw/apache/ignite/pull/3726.patch On Fri, Mar 30, 2018 at 11:44 PM, Dmitry Pavlov <dpavlov....@gmail.com> wrote: > Hi Igniters, > > Who could advice me how to create PR from these commits? Should PR be > always created by commit author? > > Hi Reed, > > could you please create PR so we could run tests on continious integration? > > Sincerely, > Dmitriy Pavlov > > ---------- Forwarded message --------- > From: Reed Sandberg (JIRA) <j...@apache.org> > Date: пт, 30 мар. 2018 г. в 22:51 > Subject: [jira] [Comment Edited] (IGNITE-6815) "Unexpected exception during > cache update" via NullPointerException thrown using TouchedExpiryPolicy > To: <dpavlov....@gmail.com> > > > > [ > https://issues.apache.org/jira/browse/IGNITE-6815?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16420872#comment-16420872 > ] > > Reed Sandberg edited comment on IGNITE-6815 at 3/30/18 7:50 PM: > ---------------------------------------------------------------- > > The following has fixed the problem in our production environment (stable > for 3 months now) > > > > 2.3: > > [ > https://github.com/reed-sandberg/ignite/commit/e6310e8d1481396f8cf3a5ede834989d0b277fc5 > ] > > > > 2.4: > > [ > https://github.com/reed-sandberg/ignite/commit/29ffe10e7be5ce3193b2fcb89c713c5269761c1c > ] > > > > > was (Author: rsandberg): > The following has fixed the problem in our production environment (stable > for 3 months now) > > > > https://github.com/reed-sandberg/ignite/commit/e6310e8d1481396f8cf3a5ede834989d0b277fc5 > >> "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 >> 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 (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) -- Best Regards, Vyacheslav D.