Thread Dump Analysis for Application Error Location
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In large-scale data centers, performance degradation and system halts can occur due to complex relationships between applications executing in multiple containers, making it difficult to determine the root cause of non-deterministic production issues, especially under peak load conditions, where conventional monitoring tools like profiling may be ineffective in identifying error locations in source code.
Innovation Solution
A method and apparatus that involve obtaining a thread dump of executing threads, filtering and aggregating data using an analyzer agent to determine potential error locations in source code, allowing for the identification of regions causing application lock-ups by grouping threads based on stack levels and applying filters to pinpoint the issue.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If conventional monitoring tools and profiling are used to monitor application performance, then system resources can be tracked and alerts can be sent, but the root cause of non-deterministic production issues under peak load cannot be accurately identified
Solution Approach 1:
The patent segments the complex thread dump data into manageable units by analyzing threads at different stack levels. Instead of attempting to analyze all threads simultaneously, the system divides the analysis into hierarchical levels, examining specific stack frames and grouping threads by their execution context. This segmentation enables precise identification of error locations within the segmented data structure.
Solution Approach 2:
The patent introduces a new dimension of analysis by examining thread dumps through multiple stack levels rather than a single flat view. The system analyzes threads at different hierarchical levels of the call stack, transforming the one-dimensional thread list into a multi-dimensional analysis space that reveals patterns and root causes that would be invisible in conventional single-level monitoring.
2Reliability
If profiling is enabled to trace executing functions and gather statistical data, then resource usage can be monitored, but profiling may be too late to detect production issues that occur under peak load
Solution Approach 1:
The patent implements preliminary action by continuously capturing and analyzing thread dump data in real-time, maintaining a historical record of thread states before peak load occurs. The system pre-processes thread dump information and establishes baseline behavior patterns, enabling detection of deviations from normal operation before they escalate into full production failures. This preliminary monitoring ensures issues are detected at their earliest stages rather than after they manifest under peak load.
3Measurement precision
If thread dump analysis is performed on all threads to identify error locations, then accurate error detection can be achieved, but the complexity of analyzing large numbers of threads increases significantly
Solution Approach 1:
The patent extracts only the relevant information from the complete thread dump by focusing analysis on specific stack levels and thread groups. Instead of processing every thread uniformly, the system extracts and analyzes only those threads and stack frames that are relevant to the error condition, filtering out redundant information. This selective extraction reduces analysis complexity while maintaining detection accuracy.
Solution Approach 2:
The patent merges threads with similar execution patterns and stack traces into grouped analyses. By combining threads that exhibit identical or similar behavior at specific stack levels, the system reduces the total number of individual thread analyses required. This merging approach maintains comprehensive coverage while significantly reducing the computational complexity of processing large numbers of individual threads.
Data Source
AI summary
A method for analyzing an application involving obtaining a thread dump of a plurality of threads executing the application, analyzing the thread dump to obtain a result using an aggregation mechanism, and determining a potential error location in source code of the application using the result.


