changeset 189:029ce36d58a7

Bug 3285: JVM aborted on assert code at MonitorContended JVMTI event Reviewed-by: ykubota https://github.com/HeapStats/heapstats/pull/73
author Yasumasa Suenaga <yasuenag@gmail.com>
date Mon, 16 Jan 2017 23:55:33 +0900
parents 7145e94668de
children 61d4732ddf95
files ChangeLog agent/heapstats.conf.in agent/src/heapstats-engines/configuration.cpp agent/src/heapstats-engines/logMain.cpp
diffstat 4 files changed, 12 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sat Jan 07 11:57:22 2017 +0900
+++ b/ChangeLog	Mon Jan 16 23:55:33 2017 +0900
@@ -1,3 +1,7 @@
+2017-01-16  Yasumasa Suenaga <yasuenag@gmail.com>
+
+	* Bug 3285: JVM aborted on assert code at MonitorContended JVMTI event
+
 2017-01-07  Yasumasa Suenaga <yasuenag@gmail.com>
 
 	* Bug 3279: Fix not to reference freed TChildCounter when SnapShot merges
--- a/agent/heapstats.conf.in	Sat Jan 07 11:57:22 2017 +0900
+++ b/agent/heapstats.conf.in	Mon Jan 16 23:55:33 2017 +0900
@@ -18,7 +18,9 @@
 trigger_on_dump=true
 
 # deadlock check
-check_deadlock=true
+# This feature is experimental. It might be a cause of HotSpot internal error
+# when you set this flag to true.
+check_deadlock=false
 
 # Trigger logging setting
 trigger_on_logerror=true
--- a/agent/src/heapstats-engines/configuration.cpp	Sat Jan 07 11:57:22 2017 +0900
+++ b/agent/src/heapstats-engines/configuration.cpp	Mon Jan 16 23:55:33 2017 +0900
@@ -1,7 +1,7 @@
 /*!
  * \file configuration.cpp
  * \brief This file treats HeapStats configuration.
- * Copyright (C) 2014-2016 Yasumasa Suenaga
+ * Copyright (C) 2014-2017 Yasumasa Suenaga
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -93,7 +93,7 @@
                                          &setOnewayBooleanValue);
     triggerOnDump = new TBooleanConfig(this, "trigger_on_dump", true,
                                        &setOnewayBooleanValue);
-    checkDeadlock = new TBooleanConfig(this, "check_deadlock", true,
+    checkDeadlock = new TBooleanConfig(this, "check_deadlock", false,
                                        &setOnewayBooleanValue);
     triggerOnLogError = new TBooleanConfig(this, "trigger_on_logerror", true,
                                            &setOnewayBooleanValue);
@@ -456,7 +456,7 @@
                        triggerOnDump->get() ? "true" : "false");
 
   /* Output status of deadlock check. */
-  logger->printInfoMsg("Deadlock check = %s",
+  logger->printInfoMsg("Deadlock check (experimental feature) = %s",
                        checkDeadlock->get() ? "true" : "false");
 
   /* Output status of logging triggers. */
--- a/agent/src/heapstats-engines/logMain.cpp	Sat Jan 07 11:57:22 2017 +0900
+++ b/agent/src/heapstats-engines/logMain.cpp	Mon Jan 16 23:55:33 2017 +0900
@@ -1,7 +1,7 @@
 /*!
  * \file logmain.cpp
  * \brief This file is used common logging process.
- * Copyright (C) 2011-2015 Nippon Telegraph and Telephone Corporation
+ * Copyright (C) 2011-2017 Nippon Telegraph and Telephone Corporation
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -318,7 +318,7 @@
     flagAllLogSignal = 0;
 
     if (likely(TDeadlockFinder::isCheckableDeadlock())) {
-      if (conf->TriggerOnLogLock()->get() && !abortionByDeadlock) {
+      if (conf->CheckDeadlock()->get() && !abortionByDeadlock) {
         /* Switch deadlock finder state. */
         if (enable) {
           TDeadlockFinder::getInstance()->start(jvmti, env);