You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Michael Blow (Code Review)" <do...@asterixdb.incubator.apache.org> on 2018/04/03 22:57:18 UTC

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Michael Blow has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/2564

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................

[ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
- Implements a thread dump mechanism that does not truncate stack
  frames after the top 8

Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
---
M hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ThreadDumpUtil.java
1 file changed, 61 insertions(+), 3 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/64/2564/1

diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ThreadDumpUtil.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ThreadDumpUtil.java
index 221d4b0..2de6700 100644
--- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ThreadDumpUtil.java
+++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ThreadDumpUtil.java
@@ -19,7 +19,9 @@
 package org.apache.hyracks.util;
 
 import java.io.IOException;
+import java.lang.management.LockInfo;
 import java.lang.management.ManagementFactory;
+import java.lang.management.MonitorInfo;
 import java.lang.management.ThreadInfo;
 import java.lang.management.ThreadMXBean;
 import java.util.ArrayList;
@@ -28,6 +30,8 @@
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Stream;
+
+import org.apache.commons.lang3.mutable.MutableInt;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
@@ -100,8 +104,62 @@
     }
 
     public static String takeDumpString() {
-        StringBuilder buf = new StringBuilder(2048);
-        Stream.of(threadMXBean.dumpAllThreads(true, true)).forEach(buf::append);
-        return buf.toString();
+        ThreadDumpHelper helper = new ThreadDumpHelper();
+        Stream.of(threadMXBean.dumpAllThreads(true, true)).forEach(helper::addThread);
+        return helper.dumpAsString();
+    }
+
+    static class ThreadDumpHelper {
+
+        private final StringBuilder buf = new StringBuilder(32 * 1024);
+
+        private ThreadDumpHelper() {
+        }
+
+        private void addThread(ThreadInfo ti) {
+            buf.append('\n');
+            quote(ti.getThreadName()).append(" [tid=").append(ti.getThreadId()).append(" state=")
+                    .append(ti.getThreadState());
+
+            if (ti.getLockName() != null) {
+                buf.append(" lock=").append(ti.getLockName());
+                if (ti.getLockOwnerName() != null) {
+                    buf.append(" lockOwner=");
+                    quote(ti.getLockOwnerName()).append(" (tid=").append(ti.getLockOwnerId());
+                }
+            }
+            if (ti.isSuspended()) {
+                buf.append(" suspended=true");
+            }
+            buf.append("]\n");
+            MutableInt depth = new MutableInt();
+            for (StackTraceElement frame : ti.getStackTrace()) {
+                int thisDepth = depth.getAndIncrement();
+                buf.append("\tat ").append(frame).append('\n');
+                Stream.of(ti.getLockedMonitors()).filter(m -> m.getLockedStackDepth() == thisDepth)
+                        .forEach(this::output);
+            }
+            LockInfo[] lockedSynchronizers = ti.getLockedSynchronizers();
+            if (lockedSynchronizers.length > 0) {
+                buf.append("\n\tLocked synchronizers:\n");
+                Stream.of(lockedSynchronizers).forEachOrdered(this::output);
+            }
+        }
+
+        private StringBuilder quote(Object quotable) {
+            return buf.append('"').append(quotable).append('"');
+        }
+
+        private StringBuilder output(MonitorInfo info) {
+            return buf.append("\t- <").append("locked ").append(info).append(">\n");
+        }
+
+        private StringBuilder output(LockInfo info) {
+            return buf.append("\t- ").append("").append(info).append("\n");
+        }
+
+        public String dumpAsString() {
+            return buf.toString();
+        }
     }
 }

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1: Contrib+1

BAD Compatibility Tests Successful

https://asterix-jenkins.ics.uci.edu/job/asterixbad-compat/3019/ : SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1:

Integration Tests Successful

https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/6154/ : SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1:

Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-verify-no-installer-app/3706/ (4/12)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1:

Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-source-format/3234/ (10/12)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1:

Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-verify-asterix-app/3728/ (6/12)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1:

Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-sonar/7222/ (3/12)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1:

Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-cancellation-test/3261/ (11/12)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1:

Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-ensure-ancestor/1282/ (12/12)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1:

Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/8738/ (1/12)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1:

Integration Tests Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/6154/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Anon. E. Moose (Code Review)" <do...@asterixdb.incubator.apache.org>.
Anon. E. Moose #1000171 has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1: Contrib+1

Analytics Compatibility Tests Successful
https://goo.gl/sUs9fy : SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1:

Build Started https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/3187/ (7/12)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Anon. E. Moose (Code Review)" <do...@asterixdb.incubator.apache.org>.
Anon. E. Moose #1000171 has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1:

Analytics Compatibility Compilation Successful
https://goo.gl/fpr2fP : SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1:

Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-verify-storage/3806/ (9/12)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1:

BAD Compatibility Tests Started https://asterix-jenkins.ics.uci.edu/job/asterixbad-compat/3019/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Michael Blow (Code Review)" <do...@asterixdb.incubator.apache.org>.
Michael Blow has submitted this change and it was merged.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


[ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
- Implements a thread dump mechanism that does not truncate stack
  frames after the top 8

Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2564
Sonar-Qube: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Murtadha Hubail <mh...@apache.org>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <je...@fulliautomatix.ics.uci.edu>
---
M hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ThreadDumpUtil.java
1 file changed, 61 insertions(+), 3 deletions(-)

Approvals:
  Anon. E. Moose #1000171: 
  Jenkins: Verified; No violations found; 
  Murtadha Hubail: Looks good to me, approved



diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ThreadDumpUtil.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ThreadDumpUtil.java
index 221d4b0..2de6700 100644
--- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ThreadDumpUtil.java
+++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/ThreadDumpUtil.java
@@ -19,7 +19,9 @@
 package org.apache.hyracks.util;
 
 import java.io.IOException;
+import java.lang.management.LockInfo;
 import java.lang.management.ManagementFactory;
+import java.lang.management.MonitorInfo;
 import java.lang.management.ThreadInfo;
 import java.lang.management.ThreadMXBean;
 import java.util.ArrayList;
@@ -28,6 +30,8 @@
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Stream;
+
+import org.apache.commons.lang3.mutable.MutableInt;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
@@ -100,8 +104,62 @@
     }
 
     public static String takeDumpString() {
-        StringBuilder buf = new StringBuilder(2048);
-        Stream.of(threadMXBean.dumpAllThreads(true, true)).forEach(buf::append);
-        return buf.toString();
+        ThreadDumpHelper helper = new ThreadDumpHelper();
+        Stream.of(threadMXBean.dumpAllThreads(true, true)).forEach(helper::addThread);
+        return helper.dumpAsString();
+    }
+
+    static class ThreadDumpHelper {
+
+        private final StringBuilder buf = new StringBuilder(32 * 1024);
+
+        private ThreadDumpHelper() {
+        }
+
+        private void addThread(ThreadInfo ti) {
+            buf.append('\n');
+            quote(ti.getThreadName()).append(" [tid=").append(ti.getThreadId()).append(" state=")
+                    .append(ti.getThreadState());
+
+            if (ti.getLockName() != null) {
+                buf.append(" lock=").append(ti.getLockName());
+                if (ti.getLockOwnerName() != null) {
+                    buf.append(" lockOwner=");
+                    quote(ti.getLockOwnerName()).append(" (tid=").append(ti.getLockOwnerId());
+                }
+            }
+            if (ti.isSuspended()) {
+                buf.append(" suspended=true");
+            }
+            buf.append("]\n");
+            MutableInt depth = new MutableInt();
+            for (StackTraceElement frame : ti.getStackTrace()) {
+                int thisDepth = depth.getAndIncrement();
+                buf.append("\tat ").append(frame).append('\n');
+                Stream.of(ti.getLockedMonitors()).filter(m -> m.getLockedStackDepth() == thisDepth)
+                        .forEach(this::output);
+            }
+            LockInfo[] lockedSynchronizers = ti.getLockedSynchronizers();
+            if (lockedSynchronizers.length > 0) {
+                buf.append("\n\tLocked synchronizers:\n");
+                Stream.of(lockedSynchronizers).forEachOrdered(this::output);
+            }
+        }
+
+        private StringBuilder quote(Object quotable) {
+            return buf.append('"').append(quotable).append('"');
+        }
+
+        private StringBuilder output(MonitorInfo info) {
+            return buf.append("\t- <").append("locked ").append(info).append(">\n");
+        }
+
+        private StringBuilder output(LockInfo info) {
+            return buf.append("\t- ").append("").append(info).append("\n");
+        }
+
+        public String dumpAsString() {
+            return buf.toString();
+        }
     }
 }

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1:

Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-asterix-app-sql-execution/3275/ (2/12)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1:

Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-asterix-app/3987/ (8/12)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1:

Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-source-assemblies/3490/ (5/12)

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No

Change in asterixdb[release-0.9.4-pre-rc]: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps

Posted by "Murtadha Hubail (Code Review)" <do...@asterixdb.incubator.apache.org>.
Murtadha Hubail has posted comments on this change.

Change subject: [ASTERIXDB-2353][HYR][RT][FAIL] Provide complete thread dumps
......................................................................


Patch Set 1: Code-Review+2

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2564
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Id778615b3ac8951113d6b9ea027ad8650b784cb2
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: release-0.9.4-pre-rc
Gerrit-Owner: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-HasComments: No