You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Alexander Menshikov (JIRA)" <ji...@apache.org> on 2018/05/07 13:38:00 UTC
[jira] [Commented] (IGNITE-8375) NPE due to race on cache stop and
timeout handler execution.
[ https://issues.apache.org/jira/browse/IGNITE-8375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16465916#comment-16465916 ]
Alexander Menshikov commented on IGNITE-8375:
---------------------------------------------
[~ascherbakov] 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();
Will it be a valid solution the add *cctx.config() != null && ...* into condition?
> 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)