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 – Thread Leak

This article discusses simulating thread leaks in applications, leading to the 'java.lang.OutOfMemoryError: unable to create new native thread' error. It demonstrates a sample program that creates infinite threads, preventing them from exiting. The article also outlines manual and automated approaches to diagnose and analyze these memory issues effectively.

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.

Memory Leak in Java executor

The article discusses an unexpected memory leak issue caused by Java's ThreadPoolExecutor, which results in "java.lang.OutOfMemoryError". Despite executing 10 jobs with 5 worker threads, the threads remain in memory instead of being garbage collected. The solution is to call the executor's shutdown() method to properly terminate the threads after job execution.

Chaos Engineering – Simulating OutOfMemoryError

This article explores the simulation of the 'java.lang.OutOfMemoryError: Java Heap space' in Java applications. It presents a sample program that continuously adds records to a HashMap until the heap size is exceeded, causing the error. The post discusses both manual and automated approaches to troubleshoot this issue effectively.

Chaos Engineering – Simulating CPU spike

This article explains how to simulate 100% CPU consumption using an infinite loop in multiple threads with Java's BuggyApp application. It details the implementation of the 'CPUSpikeDemo' and 'CPUSpikerThread' classes. The author also suggests methods for diagnosing spikes, including manual thread dumps and automated analysis tools like yCrash for root cause identification.

What are the process states in Unix/Linux?

Unix/Linux processes can be in various states: RUNNING & RUNNABLE, INTERRUPTABLE_SLEEP, UNINTERRUPTABLE_SLEEP, STOPPED, and ZOMBIE. Each state indicates a different condition of process activity and resource waiting. The article also explains how to terminate processes in different states and methods to find their current state using command-line tools.

How to Kill a Process in Unix/Linux? (kill, killall, pkill, top)

This article provides an overview of various methods to terminate processes in Unix/Linux systems. It explains commands like 'kill', 'killall', and 'pkill', detailing how to use them effectively. The 'top' command is also discussed for process termination. Key differences between these commands are highlighted for user clarity.