From issues-return-98379-archive-asf-public=cust-asf.ponee.io@ignite.apache.org Wed Sep 4 08:35:03 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id 6D4D2180674 for ; Wed, 4 Sep 2019 10:35:03 +0200 (CEST) Received: (qmail 19385 invoked by uid 500); 4 Sep 2019 13:01:33 -0000 Mailing-List: contact issues-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list issues@ignite.apache.org Received: (qmail 19256 invoked by uid 99); 4 Sep 2019 13:01:33 -0000 Received: from mailrelay1-us-west.apache.org (HELO mailrelay1-us-west.apache.org) (209.188.14.139) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 04 Sep 2019 13:01:33 +0000 Received: from jira-he-de.apache.org (static.172.67.40.188.clients.your-server.de [188.40.67.172]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id AE222E2F61 for ; Wed, 4 Sep 2019 08:35:01 +0000 (UTC) Received: from jira-he-de.apache.org (localhost.localdomain [127.0.0.1]) by jira-he-de.apache.org (ASF Mail Server at jira-he-de.apache.org) with ESMTP id 46A14781F23 for ; Wed, 4 Sep 2019 08:35:00 +0000 (UTC) Date: Wed, 4 Sep 2019 08:35:00 +0000 (UTC) From: "Vyacheslav Koptilin (Jira)" To: issues@ignite.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (IGNITE-12124) Stopping the cache does not wait for expiration process, which may be started and may lead to errors MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/IGNITE-12124?page=3Dcom.atlass= ian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vyacheslav Koptilin updated IGNITE-12124: ----------------------------------------- Description:=20 Stopping a cache with configured TTL may lead to errors. For instance, {noformat} java.lang.NullPointerException =09at org.apache.ignite.internal.processors.cache.GridCacheContext.onDeferr= edDelete(GridCacheContext.java:1702) =09at org.apache.ignite.internal.processors.cache.GridCacheMapEntry.onTtlEx= pired(GridCacheMapEntry.java:4040) =09at org.apache.ignite.internal.processors.cache.GridCacheTtlManager$1.app= lyx(GridCacheTtlManager.java:75) =09at org.apache.ignite.internal.processors.cache.GridCacheTtlManager$1.app= lyx(GridCacheTtlManager.java:66) =09at org.apache.ignite.internal.util.lang.IgniteInClosure2X.apply(IgniteIn= Closure2X.java:37) =09at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffh= eapManager$GridCacheDataStore.purgeExpiredInternal(GridCacheOffheapManager.= java:2501) =09at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffh= eapManager$GridCacheDataStore.purgeExpired(GridCacheOffheapManager.java:242= 7) =09at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffh= eapManager.expire(GridCacheOffheapManager.java:989) =09at org.apache.ignite.internal.processors.cache.GridCacheTtlManager.expir= e(GridCacheTtlManager.java:233) =09at org.apache.ignite.internal.processors.cache.GridCacheSharedTtlCleanup= Manager$CleanupWorker.body(GridCacheSharedTtlCleanupManager.java:150) =09at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java= :119) =09at java.lang.Thread.run(Thread.java:748){noformat} The obvious reason for this {{NullPointerException}} is that unregistering = of {{GridCacheTtlManager}} (see {{GridCacheSharedTtlCleanupManager#unregist= er}} does not wait for the finish of expiration (in that particular case, {= {GridCacheContext}} is already cleaned up). =C2=A0 was: Stopping a cache with configured TTL may lead to errors. For instance, {noformat} java.lang.NullPointerException =09at org.apache.ignite.internal.processors.cache.GridCacheContext.onDeferr= edDelete(GridCacheContext.java:1702) =09at org.apache.ignite.internal.processors.cache.GridCacheMapEntry.onTtlEx= pired(GridCacheMapEntry.java:4040) =09at org.apache.ignite.internal.processors.cache.GridCacheTtlManager$1.app= lyx(GridCacheTtlManager.java:75) =09at org.apache.ignite.internal.processors.cache.GridCacheTtlManager$1.app= lyx(GridCacheTtlManager.java:66) =09at org.apache.ignite.internal.util.lang.IgniteInClosure2X.apply(IgniteIn= Closure2X.java:37) =09at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffh= eapManager$GridCacheDataStore.purgeExpiredInternal(GridCacheOffheapManager.= java:2501) =09at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffh= eapManager$GridCacheDataStore.purgeExpired(GridCacheOffheapManager.java:242= 7) =09at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffh= eapManager.expire(GridCacheOffheapManager.java:989) =09at org.apache.ignite.internal.processors.cache.GridCacheTtlManager.expir= e(GridCacheTtlManager.java:233) =09at org.apache.ignite.internal.processors.cache.GridCacheSharedTtlCleanup= Manager$CleanupWorker.body(GridCacheSharedTtlCleanupManager.java:150) =09at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java= :119) =09at java.lang.Thread.run(Thread.java:748){noformat} The obvious reason for this {{NullPointerException}} is that {{ > Stopping the cache does not wait for expiration process, which may be sta= rted and may lead to errors > -------------------------------------------------------------------------= --------------------------- > > Key: IGNITE-12124 > URL: https://issues.apache.org/jira/browse/IGNITE-12124 > Project: Ignite > Issue Type: Bug > Affects Versions: 2.7 > Reporter: Vyacheslav Koptilin > Assignee: Vyacheslav Koptilin > Priority: Major > Fix For: 2.8 > > Time Spent: 10m > Remaining Estimate: 0h > > Stopping a cache with configured TTL may lead to errors. For instance, > {noformat} > java.lang.NullPointerException > =09at org.apache.ignite.internal.processors.cache.GridCacheContext.onDefe= rredDelete(GridCacheContext.java:1702) > =09at org.apache.ignite.internal.processors.cache.GridCacheMapEntry.onTtl= Expired(GridCacheMapEntry.java:4040) > =09at org.apache.ignite.internal.processors.cache.GridCacheTtlManager$1.a= pplyx(GridCacheTtlManager.java:75) > =09at org.apache.ignite.internal.processors.cache.GridCacheTtlManager$1.a= pplyx(GridCacheTtlManager.java:66) > =09at org.apache.ignite.internal.util.lang.IgniteInClosure2X.apply(Ignite= InClosure2X.java:37) > =09at org.apache.ignite.internal.processors.cache.persistence.GridCacheOf= fheapManager$GridCacheDataStore.purgeExpiredInternal(GridCacheOffheapManage= r.java:2501) > =09at org.apache.ignite.internal.processors.cache.persistence.GridCacheOf= fheapManager$GridCacheDataStore.purgeExpired(GridCacheOffheapManager.java:2= 427) > =09at org.apache.ignite.internal.processors.cache.persistence.GridCacheOf= fheapManager.expire(GridCacheOffheapManager.java:989) > =09at org.apache.ignite.internal.processors.cache.GridCacheTtlManager.exp= ire(GridCacheTtlManager.java:233) > =09at org.apache.ignite.internal.processors.cache.GridCacheSharedTtlClean= upManager$CleanupWorker.body(GridCacheSharedTtlCleanupManager.java:150) > =09at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.ja= va:119) > =09at java.lang.Thread.run(Thread.java:748){noformat} > The obvious reason for this {{NullPointerException}} is that unregisterin= g of {{GridCacheTtlManager}} (see {{GridCacheSharedTtlCleanupManager#unregi= ster}} does not wait for the finish of expiration (in that particular case,= {{GridCacheContext}} is already cleaned up). > =C2=A0 -- This message was sent by Atlassian Jira (v8.3.2#803003)