Repository: ignite Updated Branches: refs/heads/master 8d1b1d62c -> 9e4c2cdf8
IGNITE-8992 Wrong log when LongJVMPauseDetector stops the worker thread Signed-off-by: Anton Vinogradov <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/9e4c2cdf Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/9e4c2cdf Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/9e4c2cdf Branch: refs/heads/master Commit: 9e4c2cdf8008cc7bb31d5fe36c4d28dd175afe89 Parents: 8d1b1d6 Author: Garus Denis <[email protected]> Authored: Tue Jul 17 12:48:08 2018 +0300 Committer: Anton Vinogradov <[email protected]> Committed: Tue Jul 17 12:48:54 2018 +0300 ---------------------------------------------------------------------- .../ignite/internal/LongJVMPauseDetector.java | 6 ++++-- .../ignite/internal/LongJVMPauseDetectorTest.java | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/9e4c2cdf/modules/core/src/main/java/org/apache/ignite/internal/LongJVMPauseDetector.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/LongJVMPauseDetector.java b/modules/core/src/main/java/org/apache/ignite/internal/LongJVMPauseDetector.java index 8df04f9..08b118e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/LongJVMPauseDetector.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/LongJVMPauseDetector.java @@ -21,7 +21,6 @@ import java.util.Map; import java.util.TreeMap; import java.util.concurrent.atomic.AtomicReference; import org.apache.ignite.IgniteLogger; -import org.apache.ignite.logger.java.JavaLogger; import static org.apache.ignite.IgniteSystemProperties.IGNITE_JVM_PAUSE_DETECTOR_DISABLED; import static org.apache.ignite.IgniteSystemProperties.IGNITE_JVM_PAUSE_DETECTOR_LAST_EVENTS_COUNT; @@ -118,7 +117,10 @@ class LongJVMPauseDetector { } } catch (InterruptedException e) { - log.error(getName() + " has been interrupted", e); + if (workerRef.compareAndSet(this, null)) + log.error(getName() + " has been interrupted.", e); + else if (log.isDebugEnabled()) + log.debug(getName() + " has been stopped."); break; } http://git-wip-us.apache.org/repos/asf/ignite/blob/9e4c2cdf/modules/core/src/test/java/org/apache/ignite/internal/LongJVMPauseDetectorTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/LongJVMPauseDetectorTest.java b/modules/core/src/test/java/org/apache/ignite/internal/LongJVMPauseDetectorTest.java index 80761d1..267f389 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/LongJVMPauseDetectorTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/LongJVMPauseDetectorTest.java @@ -55,4 +55,22 @@ public class LongJVMPauseDetectorTest extends GridCommonAbstractTest { assertTrue(strLog.toString().contains("LongJVMPauseDetector was successfully started")); } + + /** + * @throws Exception If failed. + */ + public void testStopWorkerThread() throws Exception { + strLog = new GridStringLogger(true); + + strLog.logLength(300_000); + + startGrid(0); + + stopGrid(0); + + String log = strLog.toString(); + + assertFalse(log.contains("jvm-pause-detector-worker has been interrupted.")); + assertTrue(log.contains("jvm-pause-detector-worker has been stopped.")); + } }
