All modern applications connect with storage, such as a database or cache. Database connection leak is commonly observed in modern applications, which can result in connection leaks that can lead to production outages. In our series of chaos engineering articles, we have been learning how to simulate various performance problems. In this post, let's discuss... Continue Reading →
Java Suspended Thread states (BLOCKED, WAITING, TIMED_WAITING)
Java threads can be in 6 different states: NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED. When a thread is suspended (i.e., unable to progress further), it will be one of these 3 suspended thread states: BLOCKED, WAITING, TIMED_WAITING. Let's discuss these 3 states with real-life fun examples 🙂 BLOCKED A thread enters the ‘BLOCKED’ state when... Continue Reading →
Simulating & troubleshooting BLOCKED threads in Kotlin
This article explores how threads enter a BLOCKED state in Kotlin due to lock contention. It includes a sample program demonstrating how ten threads can be blocked when accessing a synchronized method that forces them into prolonged sleep. Additionally, it discusses methods for diagnosing blocked threads, including both manual and automated approaches using tools like yCrash.
