[geode] branch support/1.12 updated: GEODE-8607: Adding some test API to get oldest tombstone (#5623) (#5733)
This is an automated email from the ASF dual-hosted git repository. mhanson pushed a commit to branch support/1.12 in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/support/1.12 by this push: new b027331 GEODE-8607: Adding some test API to get oldest tombstone (#5623) (#5733) b027331 is described below commit b027331aa47e51c492c9a2aab414b6abfb69bd51 Author: mhansonp AuthorDate: Wed Nov 11 17:09:45 2020 -0800 GEODE-8607: Adding some test API to get oldest tombstone (#5623) (#5733) - Adding some test API to get oldest tombstone timestamp - Adding some test API for getting the oldest tombstone (cherry picked from commit eb91e9517f579c005c7b69937b8cfced7d3cc37e) (cherry picked from commit 3890db1cd755dfbbd28816055fab2a3f34385542) --- .../cache/versions/TombstoneDUnitTest.java | 348 - .../geode/internal/cache/TombstoneService.java | 47 ++- 2 files changed, 245 insertions(+), 150 deletions(-) diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java index 8c7fc3a..8cb94e5 100644 --- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java +++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java @@ -14,220 +14,296 @@ */ package org.apache.geode.internal.cache.versions; -import static org.apache.geode.cache.RegionShortcut.REPLICATE_PERSISTENT; -import static org.apache.geode.internal.cache.InitialImageOperation.GIITestHookType.AfterReceivedRequestImage; -import static org.apache.geode.internal.cache.InitialImageOperation.GIITestHookType.DuringApplyDelta; import static org.apache.geode.test.awaitility.GeodeAwaitility.await; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertEquals; import java.io.Serializable; +import java.util.Arrays; import java.util.Properties; import java.util.concurrent.CountDownLatch; +import org.junit.After; +import org.junit.Rule; import org.junit.Test; +import org.apache.geode.cache.Cache; +import org.apache.geode.cache.CacheFactory; import org.apache.geode.cache.Region; import org.apache.geode.cache.RegionShortcut; +import org.apache.geode.cache.client.ClientCache; +import org.apache.geode.cache.client.ClientCacheFactory; +import org.apache.geode.cache.client.ClientRegionShortcut; import org.apache.geode.distributed.internal.ClusterDistributionManager; import org.apache.geode.distributed.internal.DistributionMessage; import org.apache.geode.distributed.internal.DistributionMessageObserver; import org.apache.geode.internal.cache.DestroyOperation; import org.apache.geode.internal.cache.DistributedTombstoneOperation; -import org.apache.geode.internal.cache.InitialImageOperation; +import org.apache.geode.internal.cache.InternalCache; import org.apache.geode.internal.cache.LocalRegion; +import org.apache.geode.internal.cache.TombstoneService; import org.apache.geode.test.dunit.AsyncInvocation; -import org.apache.geode.test.dunit.Host; +import org.apache.geode.test.dunit.DistributedTestUtils; +import org.apache.geode.test.dunit.NetworkUtils; import org.apache.geode.test.dunit.VM; -import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase; +import org.apache.geode.test.dunit.rules.DistributedRule; -public class TombstoneDUnitTest extends JUnit4CacheTestCase { +public class TombstoneDUnitTest implements Serializable { + private static final long serialVersionUID = 2992716917694662945L; + private static Cache cache; + private static Region region; + final String REGION_NAME = "TestRegion"; + + @Rule + public DistributedRule distributedRule = new DistributedRule(); + + @After + public void close() { +for (VM vm : Arrays.asList(VM.getVM(0), VM.getVM(1))) { + vm.invoke(() -> { +region = null; +if (cache != null) { + cache.close(); +} + }); +} + } @Test - public void testTombstoneGcMessagesBetweenPersistnentAndNonPersistentRegion() { -Host host = Host.getHost(0); -VM vm0 = host.getVM(0); -VM vm1 = host.getVM(1); + public void testTombstoneGcMessagesBetweenPersistentAndNonPersistentRegion() { +VM vm0 = VM.getVM(0); +VM vm1 = VM.getVM(1); vm0.invoke(() -> { - createRegion("TestRegion", true); - Region region = getCache().getRegion("TestRegion"); + createCacheAndRegion(RegionShortcut.REPLICATE_PERSISTENT); region.put("K1", "V1"); region.put("K2", "V2"); }); -vm1.invoke(() -> { - createRegion("TestRegion", false); -}); +vm1.invoke(() -> createCacheAndRegion(RegionShortcut.REPLICATE)); vm0.invoke(() -> { // Send tombstone gc message to vm1. - Region region =
[geode] branch support/1.12 updated: GEODE-8607: Adding some test API to get oldest tombstone (#5623) (#5733)
This is an automated email from the ASF dual-hosted git repository. mhanson pushed a commit to branch support/1.12 in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/support/1.12 by this push: new b027331 GEODE-8607: Adding some test API to get oldest tombstone (#5623) (#5733) b027331 is described below commit b027331aa47e51c492c9a2aab414b6abfb69bd51 Author: mhansonp AuthorDate: Wed Nov 11 17:09:45 2020 -0800 GEODE-8607: Adding some test API to get oldest tombstone (#5623) (#5733) - Adding some test API to get oldest tombstone timestamp - Adding some test API for getting the oldest tombstone (cherry picked from commit eb91e9517f579c005c7b69937b8cfced7d3cc37e) (cherry picked from commit 3890db1cd755dfbbd28816055fab2a3f34385542) --- .../cache/versions/TombstoneDUnitTest.java | 348 - .../geode/internal/cache/TombstoneService.java | 47 ++- 2 files changed, 245 insertions(+), 150 deletions(-) diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java index 8c7fc3a..8cb94e5 100644 --- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java +++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java @@ -14,220 +14,296 @@ */ package org.apache.geode.internal.cache.versions; -import static org.apache.geode.cache.RegionShortcut.REPLICATE_PERSISTENT; -import static org.apache.geode.internal.cache.InitialImageOperation.GIITestHookType.AfterReceivedRequestImage; -import static org.apache.geode.internal.cache.InitialImageOperation.GIITestHookType.DuringApplyDelta; import static org.apache.geode.test.awaitility.GeodeAwaitility.await; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertEquals; import java.io.Serializable; +import java.util.Arrays; import java.util.Properties; import java.util.concurrent.CountDownLatch; +import org.junit.After; +import org.junit.Rule; import org.junit.Test; +import org.apache.geode.cache.Cache; +import org.apache.geode.cache.CacheFactory; import org.apache.geode.cache.Region; import org.apache.geode.cache.RegionShortcut; +import org.apache.geode.cache.client.ClientCache; +import org.apache.geode.cache.client.ClientCacheFactory; +import org.apache.geode.cache.client.ClientRegionShortcut; import org.apache.geode.distributed.internal.ClusterDistributionManager; import org.apache.geode.distributed.internal.DistributionMessage; import org.apache.geode.distributed.internal.DistributionMessageObserver; import org.apache.geode.internal.cache.DestroyOperation; import org.apache.geode.internal.cache.DistributedTombstoneOperation; -import org.apache.geode.internal.cache.InitialImageOperation; +import org.apache.geode.internal.cache.InternalCache; import org.apache.geode.internal.cache.LocalRegion; +import org.apache.geode.internal.cache.TombstoneService; import org.apache.geode.test.dunit.AsyncInvocation; -import org.apache.geode.test.dunit.Host; +import org.apache.geode.test.dunit.DistributedTestUtils; +import org.apache.geode.test.dunit.NetworkUtils; import org.apache.geode.test.dunit.VM; -import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase; +import org.apache.geode.test.dunit.rules.DistributedRule; -public class TombstoneDUnitTest extends JUnit4CacheTestCase { +public class TombstoneDUnitTest implements Serializable { + private static final long serialVersionUID = 2992716917694662945L; + private static Cache cache; + private static Region region; + final String REGION_NAME = "TestRegion"; + + @Rule + public DistributedRule distributedRule = new DistributedRule(); + + @After + public void close() { +for (VM vm : Arrays.asList(VM.getVM(0), VM.getVM(1))) { + vm.invoke(() -> { +region = null; +if (cache != null) { + cache.close(); +} + }); +} + } @Test - public void testTombstoneGcMessagesBetweenPersistnentAndNonPersistentRegion() { -Host host = Host.getHost(0); -VM vm0 = host.getVM(0); -VM vm1 = host.getVM(1); + public void testTombstoneGcMessagesBetweenPersistentAndNonPersistentRegion() { +VM vm0 = VM.getVM(0); +VM vm1 = VM.getVM(1); vm0.invoke(() -> { - createRegion("TestRegion", true); - Region region = getCache().getRegion("TestRegion"); + createCacheAndRegion(RegionShortcut.REPLICATE_PERSISTENT); region.put("K1", "V1"); region.put("K2", "V2"); }); -vm1.invoke(() -> { - createRegion("TestRegion", false); -}); +vm1.invoke(() -> createCacheAndRegion(RegionShortcut.REPLICATE)); vm0.invoke(() -> { // Send tombstone gc message to vm1. - Region region =
[geode] branch support/1.13 updated: GEODE-8607: Adding some test API to get oldest tombstone (#5623) (#5733)
This is an automated email from the ASF dual-hosted git repository. mhanson pushed a commit to branch support/1.13 in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/support/1.13 by this push: new 3890db1 GEODE-8607: Adding some test API to get oldest tombstone (#5623) (#5733) 3890db1 is described below commit 3890db1cd755dfbbd28816055fab2a3f34385542 Author: mhansonp AuthorDate: Wed Nov 11 17:09:45 2020 -0800 GEODE-8607: Adding some test API to get oldest tombstone (#5623) (#5733) - Adding some test API to get oldest tombstone timestamp - Adding some test API for getting the oldest tombstone (cherry picked from commit eb91e9517f579c005c7b69937b8cfced7d3cc37e) --- .../cache/versions/TombstoneDUnitTest.java | 348 - .../geode/internal/cache/TombstoneService.java | 47 ++- 2 files changed, 245 insertions(+), 150 deletions(-) diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java index 8c7fc3a..8cb94e5 100644 --- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java +++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java @@ -14,220 +14,296 @@ */ package org.apache.geode.internal.cache.versions; -import static org.apache.geode.cache.RegionShortcut.REPLICATE_PERSISTENT; -import static org.apache.geode.internal.cache.InitialImageOperation.GIITestHookType.AfterReceivedRequestImage; -import static org.apache.geode.internal.cache.InitialImageOperation.GIITestHookType.DuringApplyDelta; import static org.apache.geode.test.awaitility.GeodeAwaitility.await; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertEquals; import java.io.Serializable; +import java.util.Arrays; import java.util.Properties; import java.util.concurrent.CountDownLatch; +import org.junit.After; +import org.junit.Rule; import org.junit.Test; +import org.apache.geode.cache.Cache; +import org.apache.geode.cache.CacheFactory; import org.apache.geode.cache.Region; import org.apache.geode.cache.RegionShortcut; +import org.apache.geode.cache.client.ClientCache; +import org.apache.geode.cache.client.ClientCacheFactory; +import org.apache.geode.cache.client.ClientRegionShortcut; import org.apache.geode.distributed.internal.ClusterDistributionManager; import org.apache.geode.distributed.internal.DistributionMessage; import org.apache.geode.distributed.internal.DistributionMessageObserver; import org.apache.geode.internal.cache.DestroyOperation; import org.apache.geode.internal.cache.DistributedTombstoneOperation; -import org.apache.geode.internal.cache.InitialImageOperation; +import org.apache.geode.internal.cache.InternalCache; import org.apache.geode.internal.cache.LocalRegion; +import org.apache.geode.internal.cache.TombstoneService; import org.apache.geode.test.dunit.AsyncInvocation; -import org.apache.geode.test.dunit.Host; +import org.apache.geode.test.dunit.DistributedTestUtils; +import org.apache.geode.test.dunit.NetworkUtils; import org.apache.geode.test.dunit.VM; -import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase; +import org.apache.geode.test.dunit.rules.DistributedRule; -public class TombstoneDUnitTest extends JUnit4CacheTestCase { +public class TombstoneDUnitTest implements Serializable { + private static final long serialVersionUID = 2992716917694662945L; + private static Cache cache; + private static Region region; + final String REGION_NAME = "TestRegion"; + + @Rule + public DistributedRule distributedRule = new DistributedRule(); + + @After + public void close() { +for (VM vm : Arrays.asList(VM.getVM(0), VM.getVM(1))) { + vm.invoke(() -> { +region = null; +if (cache != null) { + cache.close(); +} + }); +} + } @Test - public void testTombstoneGcMessagesBetweenPersistnentAndNonPersistentRegion() { -Host host = Host.getHost(0); -VM vm0 = host.getVM(0); -VM vm1 = host.getVM(1); + public void testTombstoneGcMessagesBetweenPersistentAndNonPersistentRegion() { +VM vm0 = VM.getVM(0); +VM vm1 = VM.getVM(1); vm0.invoke(() -> { - createRegion("TestRegion", true); - Region region = getCache().getRegion("TestRegion"); + createCacheAndRegion(RegionShortcut.REPLICATE_PERSISTENT); region.put("K1", "V1"); region.put("K2", "V2"); }); -vm1.invoke(() -> { - createRegion("TestRegion", false); -}); +vm1.invoke(() -> createCacheAndRegion(RegionShortcut.REPLICATE)); vm0.invoke(() -> { // Send tombstone gc message to vm1. - Region region = getCache().getRegion("TestRegion"); region.destroy("K1"); -
[geode] branch support/1.13 updated: GEODE-8607: Adding some test API to get oldest tombstone (#5623) (#5733)
This is an automated email from the ASF dual-hosted git repository. mhanson pushed a commit to branch support/1.13 in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/support/1.13 by this push: new 3890db1 GEODE-8607: Adding some test API to get oldest tombstone (#5623) (#5733) 3890db1 is described below commit 3890db1cd755dfbbd28816055fab2a3f34385542 Author: mhansonp AuthorDate: Wed Nov 11 17:09:45 2020 -0800 GEODE-8607: Adding some test API to get oldest tombstone (#5623) (#5733) - Adding some test API to get oldest tombstone timestamp - Adding some test API for getting the oldest tombstone (cherry picked from commit eb91e9517f579c005c7b69937b8cfced7d3cc37e) --- .../cache/versions/TombstoneDUnitTest.java | 348 - .../geode/internal/cache/TombstoneService.java | 47 ++- 2 files changed, 245 insertions(+), 150 deletions(-) diff --git a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java index 8c7fc3a..8cb94e5 100644 --- a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java +++ b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/versions/TombstoneDUnitTest.java @@ -14,220 +14,296 @@ */ package org.apache.geode.internal.cache.versions; -import static org.apache.geode.cache.RegionShortcut.REPLICATE_PERSISTENT; -import static org.apache.geode.internal.cache.InitialImageOperation.GIITestHookType.AfterReceivedRequestImage; -import static org.apache.geode.internal.cache.InitialImageOperation.GIITestHookType.DuringApplyDelta; import static org.apache.geode.test.awaitility.GeodeAwaitility.await; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertEquals; import java.io.Serializable; +import java.util.Arrays; import java.util.Properties; import java.util.concurrent.CountDownLatch; +import org.junit.After; +import org.junit.Rule; import org.junit.Test; +import org.apache.geode.cache.Cache; +import org.apache.geode.cache.CacheFactory; import org.apache.geode.cache.Region; import org.apache.geode.cache.RegionShortcut; +import org.apache.geode.cache.client.ClientCache; +import org.apache.geode.cache.client.ClientCacheFactory; +import org.apache.geode.cache.client.ClientRegionShortcut; import org.apache.geode.distributed.internal.ClusterDistributionManager; import org.apache.geode.distributed.internal.DistributionMessage; import org.apache.geode.distributed.internal.DistributionMessageObserver; import org.apache.geode.internal.cache.DestroyOperation; import org.apache.geode.internal.cache.DistributedTombstoneOperation; -import org.apache.geode.internal.cache.InitialImageOperation; +import org.apache.geode.internal.cache.InternalCache; import org.apache.geode.internal.cache.LocalRegion; +import org.apache.geode.internal.cache.TombstoneService; import org.apache.geode.test.dunit.AsyncInvocation; -import org.apache.geode.test.dunit.Host; +import org.apache.geode.test.dunit.DistributedTestUtils; +import org.apache.geode.test.dunit.NetworkUtils; import org.apache.geode.test.dunit.VM; -import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase; +import org.apache.geode.test.dunit.rules.DistributedRule; -public class TombstoneDUnitTest extends JUnit4CacheTestCase { +public class TombstoneDUnitTest implements Serializable { + private static final long serialVersionUID = 2992716917694662945L; + private static Cache cache; + private static Region region; + final String REGION_NAME = "TestRegion"; + + @Rule + public DistributedRule distributedRule = new DistributedRule(); + + @After + public void close() { +for (VM vm : Arrays.asList(VM.getVM(0), VM.getVM(1))) { + vm.invoke(() -> { +region = null; +if (cache != null) { + cache.close(); +} + }); +} + } @Test - public void testTombstoneGcMessagesBetweenPersistnentAndNonPersistentRegion() { -Host host = Host.getHost(0); -VM vm0 = host.getVM(0); -VM vm1 = host.getVM(1); + public void testTombstoneGcMessagesBetweenPersistentAndNonPersistentRegion() { +VM vm0 = VM.getVM(0); +VM vm1 = VM.getVM(1); vm0.invoke(() -> { - createRegion("TestRegion", true); - Region region = getCache().getRegion("TestRegion"); + createCacheAndRegion(RegionShortcut.REPLICATE_PERSISTENT); region.put("K1", "V1"); region.put("K2", "V2"); }); -vm1.invoke(() -> { - createRegion("TestRegion", false); -}); +vm1.invoke(() -> createCacheAndRegion(RegionShortcut.REPLICATE)); vm0.invoke(() -> { // Send tombstone gc message to vm1. - Region region = getCache().getRegion("TestRegion"); region.destroy("K1"); -
[geode] branch support/1.12 updated: GEODE-7884: server hangs due to IllegalStateException (#4822)
This is an automated email from the ASF dual-hosted git repository. burcham pushed a commit to branch support/1.12 in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/support/1.12 by this push: new 6fec62f GEODE-7884: server hangs due to IllegalStateException (#4822) 6fec62f is described below commit 6fec62ff7b4b6ebc4f0f8079fcd67a2b0c3919b0 Author: Bruce Schuchardt AuthorDate: Fri Mar 20 09:05:24 2020 -0700 GEODE-7884: server hangs due to IllegalStateException (#4822) * GEODE-7884: server hangs due to IllegalStateException Added cancellation check before scheduling an idle-timeout or ack-wait-threshold timer task. I had to add a new method to SystemTimerTask and then noticed there were no tests for SystemTimer, so I cleaned up that class and added tests. * adding missing copyright header to new test * fixing LGTM issues * reinstating 'continue' when encountering a null timer during a sweep * addressing Bill's comments renamed swarm everwhere made the collection of timers associated with a DistributedSystem into a Set made timer task variables in Connection volatile added checks in tasks to cancel themselves if their Connection is closed (cherry picked from commit 2d2a3f80bd5053749963889c1898df48e9aa0be7) --- .../internal/InternalDistributedSystem.java| 2 +- .../org/apache/geode/internal/SystemTimer.java | 370 +++-- .../geode/internal/admin/StatAlertsManager.java| 2 +- .../geode/internal/cache/ExpirationScheduler.java | 2 +- .../geode/internal/cache/GemFireCacheImpl.java | 2 +- .../cache/partitioned/PRSanityCheckMessage.java| 2 +- .../internal/cache/tier/sockets/AcceptorImpl.java | 2 +- .../org/apache/geode/internal/tcp/Connection.java | 30 +- .../apache/geode/internal/tcp/ConnectionTable.java | 22 +- .../org/apache/geode/internal/SystemTimerTest.java | 162 + 10 files changed, 329 insertions(+), 267 deletions(-) diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java index 823844f..e97bd02 100644 --- a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java +++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java @@ -1625,7 +1625,7 @@ public class InternalDistributedSystem extends DistributedSystem // bug 38501: this has to happen *after* // the DM is closed :-( if (!preparingForReconnect) { -SystemTimer.cancelSwarm(this); +SystemTimer.cancelTimers(this); } } // finally timer cancelled } // finally dm closed diff --git a/geode-core/src/main/java/org/apache/geode/internal/SystemTimer.java b/geode-core/src/main/java/org/apache/geode/internal/SystemTimer.java index 9ce3525..7eddf43 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/SystemTimer.java +++ b/geode-core/src/main/java/org/apache/geode/internal/SystemTimer.java @@ -15,32 +15,30 @@ package org.apache.geode.internal; import java.lang.ref.WeakReference; -import java.text.SimpleDateFormat; -import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.Map; +import java.util.Set; import java.util.Timer; import java.util.TimerTask; import org.apache.logging.log4j.Logger; import org.apache.geode.CancelException; -import org.apache.geode.SystemFailure; import org.apache.geode.annotations.internal.MakeNotStatic; -import org.apache.geode.distributed.internal.InternalDistributedSystem; +import org.apache.geode.distributed.DistributedSystem; import org.apache.geode.logging.internal.log4j.api.LogService; /** - * Instances of this class are like {@link Timer}, but are associated with a "swarm", which can be - * cancelled as a group with {@link #cancelSwarm(Object)}. + * Instances of this class are like {@link Timer}, but are associated with a DistributedSystem, + * which can be + * cancelled as a group with {@link #cancelTimers(DistributedSystem)}. * * @see Timer * @see TimerTask * - * TODO -- with Java 1.5, this will be a template type so that the swarm's class can be - * specified. */ public class SystemTimer { private static final Logger logger = LogService.getLogger(); @@ -49,12 +47,6 @@ public class SystemTimer { "IBM Corporation".equals(System.getProperty("java.vm.vendor")); /** - * Extra debugging for this class - */ - // private static final boolean DEBUG = true; - static final boolean DEBUG = false; - - /** * the underlying {@link Timer} */ private final Timer timer; @@ -62,119 +54,106 @@ public class SystemTimer { /**
[geode] branch support/1.12 updated: GEODE-7884: server hangs due to IllegalStateException (#4822)
This is an automated email from the ASF dual-hosted git repository. burcham pushed a commit to branch support/1.12 in repository https://gitbox.apache.org/repos/asf/geode.git The following commit(s) were added to refs/heads/support/1.12 by this push: new 6fec62f GEODE-7884: server hangs due to IllegalStateException (#4822) 6fec62f is described below commit 6fec62ff7b4b6ebc4f0f8079fcd67a2b0c3919b0 Author: Bruce Schuchardt AuthorDate: Fri Mar 20 09:05:24 2020 -0700 GEODE-7884: server hangs due to IllegalStateException (#4822) * GEODE-7884: server hangs due to IllegalStateException Added cancellation check before scheduling an idle-timeout or ack-wait-threshold timer task. I had to add a new method to SystemTimerTask and then noticed there were no tests for SystemTimer, so I cleaned up that class and added tests. * adding missing copyright header to new test * fixing LGTM issues * reinstating 'continue' when encountering a null timer during a sweep * addressing Bill's comments renamed swarm everwhere made the collection of timers associated with a DistributedSystem into a Set made timer task variables in Connection volatile added checks in tasks to cancel themselves if their Connection is closed (cherry picked from commit 2d2a3f80bd5053749963889c1898df48e9aa0be7) --- .../internal/InternalDistributedSystem.java| 2 +- .../org/apache/geode/internal/SystemTimer.java | 370 +++-- .../geode/internal/admin/StatAlertsManager.java| 2 +- .../geode/internal/cache/ExpirationScheduler.java | 2 +- .../geode/internal/cache/GemFireCacheImpl.java | 2 +- .../cache/partitioned/PRSanityCheckMessage.java| 2 +- .../internal/cache/tier/sockets/AcceptorImpl.java | 2 +- .../org/apache/geode/internal/tcp/Connection.java | 30 +- .../apache/geode/internal/tcp/ConnectionTable.java | 22 +- .../org/apache/geode/internal/SystemTimerTest.java | 162 + 10 files changed, 329 insertions(+), 267 deletions(-) diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java index 823844f..e97bd02 100644 --- a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java +++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java @@ -1625,7 +1625,7 @@ public class InternalDistributedSystem extends DistributedSystem // bug 38501: this has to happen *after* // the DM is closed :-( if (!preparingForReconnect) { -SystemTimer.cancelSwarm(this); +SystemTimer.cancelTimers(this); } } // finally timer cancelled } // finally dm closed diff --git a/geode-core/src/main/java/org/apache/geode/internal/SystemTimer.java b/geode-core/src/main/java/org/apache/geode/internal/SystemTimer.java index 9ce3525..7eddf43 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/SystemTimer.java +++ b/geode-core/src/main/java/org/apache/geode/internal/SystemTimer.java @@ -15,32 +15,30 @@ package org.apache.geode.internal; import java.lang.ref.WeakReference; -import java.text.SimpleDateFormat; -import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.Map; +import java.util.Set; import java.util.Timer; import java.util.TimerTask; import org.apache.logging.log4j.Logger; import org.apache.geode.CancelException; -import org.apache.geode.SystemFailure; import org.apache.geode.annotations.internal.MakeNotStatic; -import org.apache.geode.distributed.internal.InternalDistributedSystem; +import org.apache.geode.distributed.DistributedSystem; import org.apache.geode.logging.internal.log4j.api.LogService; /** - * Instances of this class are like {@link Timer}, but are associated with a "swarm", which can be - * cancelled as a group with {@link #cancelSwarm(Object)}. + * Instances of this class are like {@link Timer}, but are associated with a DistributedSystem, + * which can be + * cancelled as a group with {@link #cancelTimers(DistributedSystem)}. * * @see Timer * @see TimerTask * - * TODO -- with Java 1.5, this will be a template type so that the swarm's class can be - * specified. */ public class SystemTimer { private static final Logger logger = LogService.getLogger(); @@ -49,12 +47,6 @@ public class SystemTimer { "IBM Corporation".equals(System.getProperty("java.vm.vendor")); /** - * Extra debugging for this class - */ - // private static final boolean DEBUG = true; - static final boolean DEBUG = false; - - /** * the underlying {@link Timer} */ private final Timer timer; @@ -62,119 +54,106 @@ public class SystemTimer { /**
[geode] branch develop updated (ba8f901 -> c99087a)
This is an automated email from the ASF dual-hosted git repository. sabbey37 pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from ba8f901 GEODE-8684: Setting a session's maxInactiveInterval does not work when the commit valve is disabled (#5724) add c99087a GEODE-8692: ArrayIndexOutOfBoundsException may be thrown in RegionAdvisor.processProfilesQueuedDuringInitialization (#5722) No new revisions were added by this update. Summary of changes: .../internal/cache/partitioned/RegionAdvisor.java | 16 +++-- .../cache/partitioned/RegionAdvisorJUnitTest.java | 81 ++ 2 files changed, 93 insertions(+), 4 deletions(-) create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/RegionAdvisorJUnitTest.java
[geode] branch develop updated (ba8f901 -> c99087a)
This is an automated email from the ASF dual-hosted git repository. sabbey37 pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from ba8f901 GEODE-8684: Setting a session's maxInactiveInterval does not work when the commit valve is disabled (#5724) add c99087a GEODE-8692: ArrayIndexOutOfBoundsException may be thrown in RegionAdvisor.processProfilesQueuedDuringInitialization (#5722) No new revisions were added by this update. Summary of changes: .../internal/cache/partitioned/RegionAdvisor.java | 16 +++-- .../cache/partitioned/RegionAdvisorJUnitTest.java | 81 ++ 2 files changed, 93 insertions(+), 4 deletions(-) create mode 100644 geode-core/src/test/java/org/apache/geode/internal/cache/partitioned/RegionAdvisorJUnitTest.java
[geode] branch develop updated (70b1ee8 -> ba8f901)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 70b1ee8 GEODE-8686: Prevent potential deadlock during GII and tombstone GC (#5707) add ba8f901 GEODE-8684: Setting a session's maxInactiveInterval does not work when the commit valve is disabled (#5724) No new revisions were added by this update. Summary of changes: .../modules/session/catalina/DeltaSession.java | 4 +++ .../geode/session/tests/TomcatContainer.java | 15 + .../apache/geode/session/tests/TomcatInstall.java | 36 -- .../apache/geode/session/tests/CargoTestBase.java | 9 +++--- .../tests/Tomcat6CachingClientServerTest.java | 2 +- .../session/tests/Tomcat6ClientServerTest.java | 3 +- .../apache/geode/session/tests/Tomcat6Test.java| 3 +- .../tests/Tomcat7CachingClientServerTest.java | 2 +- .../session/tests/Tomcat7ClientServerTest.java | 3 +- .../apache/geode/session/tests/Tomcat7Test.java| 3 +- .../tests/Tomcat8CachingClientServerTest.java | 2 +- .../session/tests/Tomcat8ClientServerTest.java | 3 +- .../apache/geode/session/tests/Tomcat8Test.java| 3 +- .../tests/Tomcat9CachingClientServerTest.java | 2 +- ...mcat9CachingClientServerValveDisabledTest.java} | 4 +-- .../session/tests/Tomcat9ClientServerTest.java | 3 +- .../apache/geode/session/tests/Tomcat9Test.java| 3 +- .../Tomcat8ClientServerRollingUpgradeTest.java | 4 +-- ...omcatSessionBackwardsCompatibilityTestBase.java | 8 ++--- 19 files changed, 76 insertions(+), 36 deletions(-) copy geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/{Tomcat9CachingClientServerTest.java => Tomcat9CachingClientServerValveDisabledTest.java} (89%)
[geode] branch develop updated (70b1ee8 -> ba8f901)
This is an automated email from the ASF dual-hosted git repository. jensdeppe pushed a change to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git. from 70b1ee8 GEODE-8686: Prevent potential deadlock during GII and tombstone GC (#5707) add ba8f901 GEODE-8684: Setting a session's maxInactiveInterval does not work when the commit valve is disabled (#5724) No new revisions were added by this update. Summary of changes: .../modules/session/catalina/DeltaSession.java | 4 +++ .../geode/session/tests/TomcatContainer.java | 15 + .../apache/geode/session/tests/TomcatInstall.java | 36 -- .../apache/geode/session/tests/CargoTestBase.java | 9 +++--- .../tests/Tomcat6CachingClientServerTest.java | 2 +- .../session/tests/Tomcat6ClientServerTest.java | 3 +- .../apache/geode/session/tests/Tomcat6Test.java| 3 +- .../tests/Tomcat7CachingClientServerTest.java | 2 +- .../session/tests/Tomcat7ClientServerTest.java | 3 +- .../apache/geode/session/tests/Tomcat7Test.java| 3 +- .../tests/Tomcat8CachingClientServerTest.java | 2 +- .../session/tests/Tomcat8ClientServerTest.java | 3 +- .../apache/geode/session/tests/Tomcat8Test.java| 3 +- .../tests/Tomcat9CachingClientServerTest.java | 2 +- ...mcat9CachingClientServerValveDisabledTest.java} | 4 +-- .../session/tests/Tomcat9ClientServerTest.java | 3 +- .../apache/geode/session/tests/Tomcat9Test.java| 3 +- .../Tomcat8ClientServerRollingUpgradeTest.java | 4 +-- ...omcatSessionBackwardsCompatibilityTestBase.java | 8 ++--- 19 files changed, 76 insertions(+), 36 deletions(-) copy geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/{Tomcat9CachingClientServerTest.java => Tomcat9CachingClientServerValveDisabledTest.java} (89%)