[ https://issues.apache.org/jira/browse/IGNITE-8375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16465916#comment-16465916 ]
Alexander Menshikov edited comment on IGNITE-8375 at 5/11/18 11:47 AM: ----------------------------------------------------------------------- As I see in this method the *cacheCfg* is used twice: {code:java} if (!skipStore && (read || cctx.loadPreviousValue()) && cctx.readThrough() && (needReturnVal || read)) { {code} # cctx.loadPreviousValue() calls *cacheCfg*.isLoadPreviousValue() # cctx.readThrough() calls *cacheCfg*.isReadThrough() && !skipStore() was (Author: sharpler): As I see in this method the *cacheCfg* is ** used twice: {code:java} if (!skipStore && (read || cctx.loadPreviousValue()) && cctx.readThrough() && (needReturnVal || read)) { {code} # cctx.loadPreviousValue() calls *cacheCfg*.isLoadPreviousValue() # cctx.readThrough() calls *cacheCfg*.isReadThrough() && !skipStore() > NPE due to race on cache stop and timeout handler execution. > ------------------------------------------------------------ > > Key: IGNITE-8375 > URL: https://issues.apache.org/jira/browse/IGNITE-8375 > Project: Ignite > Issue Type: Bug > Affects Versions: 2.4 > Reporter: Alexei Scherbakov > Priority: Major > Fix For: 2.6 > > > {noformat} > 2018-04-22 22:03:08.547 [INFO > ][Thread-25420][o.a.i.i.p.cache.GridCacheProcessor] Stopped cache > [cacheName=com.sbt.cdm.api.model.published.dictionary.PublishedSystem, > group=CACHEGROUP_DICTIONARY] > 2018-04-22 22:03:08.548 > [ERROR][grid-timeout-worker-#119%DPL_GRID%DplGridNodeName%][o.a.i.i.p.t.GridTimeoutProcessor] > Error when executing timeout callback: LockTimeoutObject [] > java.lang.NullPointerException: null > at > org.apache.ignite.internal.processors.cache.GridCacheContext.loadPreviousValue(GridCacheContext.java:1450) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.loadMissingFromStore(GridDhtLockFuture.java:1030) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.onComplete(GridDhtLockFuture.java:731) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.access$900(GridDhtLockFuture.java:82) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture$LockTimeoutObject.onTimeout(GridDhtLockFuture.java:1133) > at > org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor$TimeoutWorker.body(GridTimeoutProcessor.java:163) > at > org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) > at java.lang.Thread.run(Thread.java:745) > {noformat} > NPE caused by execution of method [1] during timeout handler execution [2]: > cacheCfg.isLoadPreviousValue() throws NPE because cacheCfg can be nulled by > [3] on stop. > [1] > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture#loadMissingFromStore > [2] > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLockFuture.LockTimeoutObject#onTimeout > [3] org.apache.ignite.internal.processors.cache.GridCacheContext#cleanup -- This message was sent by Atlassian JIRA (v7.6.3#76005)