Chaos Engineering – Storage Saturation

Production environments frequently face space shortages due to growing disk usage by files like logs, databases, and output files. Failing to monitor and manage these files can lead to application crashes. The article explores simulating disk storage issues, offering a sample program, and strategies for diagnosing storage saturation, including manual and automated approaches using monitoring tools.

Chaos Engineering – Network Lag

The article discusses the impact of network delays on application performance and presents a method to simulate network lag using BuggyApp as a proxy server. It provides a sample program to introduce delays in server responses and explains manual and automated approaches to diagnose network issues. The article highlights the importance of addressing network performance problems in chaos engineering.

Chaos Engineering – DB Connection Leak

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 →

Chaos Engineering – File Connection Leak

Many Java applications still use files for importing and exporting data. If the connections to these files are not properly managed, it can lead to a significant number of connections leaking, causing the application to slow down or even crash. In our series of chaos engineering articles, we have been learning how to simulate various... Continue Reading →

Simulating & troubleshooting CPU spike in Kotlin

This article describes how to simulate a CPU spike in Kotlin using an example program that launches six threads running infinite loops. It explains methods for troubleshooting high CPU consumption through both manual and automated approaches, highlighting the use of the yCrash tool to identify problematic threads and code lines causing the issue.

Chaos Engineering – Metaspace OutOfMemoryError

JVM memory consists of various regions, including Young Generation, Old Generation, and Metaspace. 'java.lang.OutOfMemoryError: Metaspace' occurs when the Metaspace is full due to excessive metadata from dynamically created classes. Solutions include increasing Metaspace size or troubleshooting memory leaks. A sample program demonstrates this memory issue.

Chaos Engineering – Blocked Threads

This article discusses simulating thread BLOCKED states in chaos engineering using a sample program from BuggyApp. It describes how threads are blocked when attempting to acquire a lock on a synchronized method still held by another thread. It also explains diagnosing blocked threads through manual and automated approaches, including using tools like yCrash for analysis.

Chaos Engineering – Stackoverflow Error

This article discusses how to simulate and diagnose StackOverflow errors in Java. It introduces a sample program that triggers a StackOverflowError due to infinite recursion in the start() method of the StackOverflowDemo class. Both manual and automated approaches for diagnosing the error are outlined, highlighting the effectiveness of the yCrash tool for root cause analysis.

Chaos Engineering – Deadlock

The article discusses deadlock in multi-threaded applications, defining it as a situation where processes are blocked, each waiting for a resource held by another. It provides an analogy using trains on a shared track that can't proceed due to overlapping resource needs. Sample Java code illustrates deadlock, while troubleshooting methods are described.

Up ↑