Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
Impala 3.1.0
-
None
-
ghx-label-3
Description
tlipcon suggested this as a mitigation for IMPALA-7482 to get the cluster unstuck.
The JVM exposes some functionality to detect deadlock threads: https://docs.oracle.com/javase/7/docs/api/java/lang/management/ThreadMXBean.html#findDeadlockedThreads()
We could have a background thread try to detect java-level deadlocks.
This comment in the docs is slightly offputting "This method is designed for troubleshooting use, but not for synchronization control. It might be an expensive operation." We should probably understand what this means and what the consequences are before running this always.
One option is to only check for deadlocks if some operations except a performance threshold. The disadvantage of this is that we need to have thresholds for every operation that can deadlock.