]
Galder Zamarreno resolved JBAS-5163.
------------------------------------
Resolution: Done
Add JDK 6 version of ServerInfo.listThreadDump() taking advantage of
new management classes
-------------------------------------------------------------------------------------------
Key: JBAS-5163
URL:
http://jira.jboss.com/jira/browse/JBAS-5163
Project: JBoss Application Server
Issue Type: Feature Request
Security Level: Public(Everyone can see)
Components: JMX/Web Console
Affects Versions: JBossAS-5.0.0.Beta3, JBossAS-4.2.2.GA
Reporter: Galder Zamarreno
Assigned To: Galder Zamarreno
Fix For: JBossAS-5.0.0.CR1
Attachments: jdk5-with-deadlock-v2.pdf, jdk5-with-deadlock.pdf,
jdk5-without-deadlock-v2.pdf, jdk5-without-deadlock.pdf, jdk6-with-deadlocks-v2.pdf,
jdk6-with-deadlocks.pdf, jdk6-without-deadlocks-v2.pdf, jdk6-without-deadlocks.pdf,
jmx-serverinfo.dump, kill-3.dump, thread-deadlock.zip
There're 4 ways to generate a thread dump. I have taken the output from the same run
with
different methods:
1.- kill -3. Can be parsed by tools like
https://tda.dev.java.net/ (simply, one of the
most useful
tools I've found out there!). Example:
"JBossLifeThread" prio=1 tid=0x0a690cc0 nid=0x1741 in Object.wait()
[0x867f2000..0x867f30b0]
at java.lang.Object.wait(Native Method)
- waiting on <0x9247e200> (a java.lang.Object)
at java.lang.Object.wait(Object.java:474)
at org.jboss.system.server.ServerImpl$LifeThread.run(ServerImpl.java:940)
- locked <0x9247e200> (a java.lang.Object)
2.- JMX via org.jboss.system.server.ServerInfo.listThreadDump(). Here's some output:
Thread: JBossLifeThread : priority:5, demon:false, threadId:58, threadState:WAITING,
lockName:java.l
ang.Object@10cff6b
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:474)
org.jboss.system.server.ServerImpl$LifeThread.run(ServerImpl.java:940)
Lock name is different to lock monitor achieved via kill -3. Doesn't looks like it
prints previously locked
monitors. Cannot be parsed by TDA tools because it's in JBoss specific format.
3.- Thread.getAllStackTraces().
Haven't tested the output from this. What would this print? Couldn't find an
MBean that uses/parses
the output from this, but I suspect it's the same as method 2, specially since
http://jira.jboss.com/jira/browse/JBAS-1448 has already been fixed.
4.- JConsole Threads view:
Code:
Name: JBossLifeThread
State: WAITING on java.lang.Object@10cff6b
Total blocked: 0 Total waited: 1
Stack trace:
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:474)
org.jboss.system.server.ServerImpl$LifeThread.run(ServerImpl.java:940)
Seems to print same info as JBoss' ServerInfo.
Bottom line: we should try generating thread dumps that look like kill -3
output to make them more readable than in their current format and to
benefit from existing tools that can parse standard kill -3 format.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: