Automated hang detection in Java thread dumps

Uloženo v:
Podrobná bibliografie
Název: Automated hang detection in Java thread dumps
Patent Number: 7,278,057
Datum vydání: October 02, 2007
Appl. No: 10/632062
Application Filed: July 31, 2003
Abstrakt: A system and method for analyzing Java thread deadlocks. A snapshot of threads in a Java Virtual Machine is generated, producing a thread dump file which can be analyzed offline. The thread dump file is optimistically parsed to identify threads which are deadlocked. A user is provided with an interface to select filtering rules for the threads, resulting in a set of filtered threads which are candidates for being in infinite wait conditions.
Inventors: Betancourt, Michel (Morrisville, NC, US); Patel, Dipak M. (Morrisville, NC, US); Sahoo, Chintamani (Cary, NC, US)
Assignees: International Business Machines Corporation (Armonk, NY, US)
Claim: 1. A system for analyzing thread deadlocks in a Java virtual machine, comprising: a thread analyzer tool, wherein the tool analyzes a thread dump to automatically identify thread deadlocks, wherein the tool identifies threads that are in a self wait condition and threads that are in a circular wait condition; and a user interface that allows a user to specify criteria, wherein the tool excludes threads that do not meet the criteria from being identified on the user interface as deadlocked threads even though the threads were identified as being deadlocked threads pursuant to the thread dump analysis.
Claim: 2. The system of claim 1 , wherein the tool analyzes a thread dump file in offline mode.
Claim: 3. The system of claim 1 , wherein the tool obtains a thread dump from a running information processing system.
Claim: 4. A method of analyzing thread deadlocks in a Java virtual machine, comprising the steps of: obtaining a thread dump of a Java virtual machine; analyzing the thread dump to automatically identify threads in a deadlock condition, wherein threads in a circular wait condition and threads in a self wait condition are identified; and receiving, by a user interface, user specified criteria from a user, wherein identified deadlock threads that do not meet the criteria are filtered such that they are not presented to the user by the user interface even though the threads that do not meet the criteria were identified as being deadlocked threads pursuant to the thread dump analysis.
Claim: 5. The method of claim 4 , wherein filtered threads are excluded from identification as threads in a self wait condition.
Claim: 6. The method of claim 4 , wherein the tool analyzes a thread dump file in offline mode.
Claim: 7. The method of claim 4 , wherein a matrix is populated to identify threads owning resources and threads waiting on resources, and wherein the matrix is used to identify threads in a circular wait condition.
Claim: 8. The method of claim 4 , wherein the step of analyzing the thread dump to automatically identify threads in a deadlock condition includes the steps of: (a) identifying, in the thread dump, a locked object that is already in use by a thread; (b) identifying threads that own resources the thread that has locked the locked object; (c) identifying each waiting thread that is waiting on the locked object; and (d) comparing the results from steps (b) and (c), and then repeating steps (a)-(c) for each locked object in the thread dump, to identify the threads in the circular wait condition and the self wait condition.
Current U.S. Class: 714/38
Patent References Cited: 5440743 August 1995 Yokota et al.
5590335 December 1996 Dubourreau et al.
5809517 September 1998 Shimura
5835766 November 1998 Iba et al.
6009269 December 1999 Burrows et al.
6101524 August 2000 Choi et al.
6247025 June 2001 Bacon
6418542 July 2002 Yeager
6507861 January 2003 Nelson et al.
6983461 January 2006 Hutchison et al.
2002/0124085 September 2002 Matsuda et al.
2002/0147860 October 2002 Tapperson
2002/0161957 October 2002 Comeau et al.
2002/0194377 December 2002 Doolittle et al.
2003/0023655 January 2003 Sokolov et al.
2003/0023656 January 2003 Hutchison et al.
2005/0028157 February 2005 Betancourt et al.
2006/0143610 June 2006 Toader
Other References: Nonaka et al., “A Run-Time Deadlock Detector for Concurrent Java Programs”, 2001 IEEE, pp. 45-52. cited by other
Assistant Examiner: Puente, Emerson
Primary Examiner: Beausoliel, Robert W.
Attorney, Agent or Firm: Yee, Duke W.
Clay, A. Bruce
Bailey, Wayne P.
Přístupové číslo: edspgr.07278057
Databáze: USPTO Patent Grants
Popis
Abstrakt:A system and method for analyzing Java thread deadlocks. A snapshot of threads in a Java Virtual Machine is generated, producing a thread dump file which can be analyzed offline. The thread dump file is optimistically parsed to identify threads which are deadlocked. A user is provided with an interface to select filtering rules for the threads, resulting in a set of filtered threads which are candidates for being in infinite wait conditions.