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.

Reply via email to