Hi Reed, Could you please update https://issues.apache.org/jira/browse/IGNITE-6815 status to Patch Available, so we can proceed with this contribution ?
I saw second PR from you with some proposal for OS config advices. Could you please create issue corresponding to this PR and also set to Patch Available. Probably we could discuss this proposal on dev.list and apply this PR. Sincerely, Dmitriy Pavlov P.S. full description of contribution process https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute сб, 31 мар. 2018 г. в 21:23, Vyacheslav Daradur <daradu...@gmail.com>: > 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. >