Hello Syed!
Greetings. I would like to share couple of observations.
Observation 1: STUCK Thread
Based on your thread dump, one thread is in STUCK state:
Here is the thread which is STUCK. You should take a look at it's stacktrace closely to see what this thread is doing and why it is stuck.
Observation 2: Complete analysis
I doubt just 1 thread going in to STUCK state, can cause the entire the application go in to WARNING state. There could be several reasons why application is going in to WARNING state. Some of the reasons are:
a. Garbage collection pauses
b. Network connectivity
c. Load balancer routing issue
d. Heavy CPU consumption of threads
e. Operating System running with old patches
f. Memory Leak
:
:
So just thread dump is not enough to diagnose the problem. You have captured only thread dump, that too one snapshot of it. It's always a good practice to capture 3 thread dumps in a gap of 10 seconds between each one. Besides thread dumps you might have to capture other logs/artifacts to do thorough analysis. You may consider using tools like yCrash, which captures application level artifacts (like GC logs, 3 snapshots of thread dumps, heap dumps) and system level artifacts (like top, top -H, netstat, vmstat, iostat, dmesg, diskusage...) and does complete analysis to identify the root cause of the problem. You can register here to get a free 14 day trial of the yCrash.
Edit your Comment