Laurentiu Spilca, a talented Java and Spring developer, authored "Troubleshooting Java," focusing on code investigation techniques to optimize and debug JVM applications. The book offers practical insights and real-world examples, including effective use of the yCrash-fastThread tool for analyzing thread dumps, quickly identifying issues like deadlocks to enhance Java app performance.
Simulating & troubleshooting Deadlock in Scala
This content discusses deadlock in multi-threaded applications, particularly in Scala. It explains deadlock as a situation where processes cannot proceed due to blocking, illustrated with a train example. The article also provides a sample Scala program creating deadlock and suggestions for troubleshooting using tools like yCrash to analyze thread dumps and logs.
Simulating & troubleshooting CPU spike in Scala
This article discusses simulating and troubleshooting CPU consumption spikes in Scala. A sample program creates six threads that enter infinite loops, causing 100% CPU usage. Troubleshooting can be done manually by capturing thread dumps or using an automated tool like yCrash, which provides detailed analysis and identifies problematic threads and code lines causing the spikes.
Simulating & troubleshooting OOMError in Scala
This post explains how to simulate and troubleshoot the 'java.lang.OutOfMemoryError: Java Heap space' error in Scala. It provides a sample program that infinitely inserts records into a HashMap, leading to this error. Additionally, it outlines manual and automated approaches for diagnosing the issue and utilizing heap dumps for analysis.
Simulating & troubleshooting BLOCKED threads in Scala
This article discusses making threads enter the BLOCKED state in Scala due to lock acquisition failures. A sample program demonstrates how ten threads contend for a synchronized method, resulting in nine being blocked. It outlines manual and automated approaches for diagnosing BLOCKED threads, emphasizing the use of the yCrash tool for analysis and root cause identification.
Simulating & troubleshooting Thread leak in Scala
This content discusses simulating thread leaks in Scala, specifically generating the 'java.lang.OutOfMemoryError: unable to create new native thread'. A provided sample program continuously creates threads, eventually saturating memory. It outlines both manual and automated diagnostic approaches, emphasizing the effectiveness of the yCrash tool for identifying problematic threads and their origins.
Simulating & troubleshooting StackOverflowError in Scala
This post explains how to simulate a StackOverflowError in Scala through a recursive program. The example demonstrates infinite method calls leading to the error. It discusses diagnosis methods, including manual analysis of logs and using the yCrash tool for automated analysis, which identifies error sources effectively.
Simulating & troubleshooting OOMError in Kotlin
This content discusses simulating and troubleshooting the ‘java.lang.OutOfMemoryError: Java Heap space’ issue in Kotlin applications. It describes a sample program that causes this error by indefinitely inserting records into a HashMap. It also outlines manual and automated approaches for diagnosing the problem, emphasizing the importance of capturing heap dumps before the error occurs.
Simulating & troubleshooting StackOverflowError in Kotlin
This post discusses simulating and diagnosing StackOverflow errors in Kotlin. A sample program demonstrates how recursive calls cause this runtime error, exceeding the thread's stack size. Manual and automated approaches, including the yCrash tool, are outlined for diagnosing the error, pinpointing infinite loops and providing insights for resolution.
Simulating & troubleshooting Thread leak in Kotlin
This post explains how to simulate and troubleshoot thread leaks in Kotlin, focusing on generating a 'java.lang.OutOfMemoryError: unable to create new native thread.’ It describes a sample program that infinitely creates non-terminating threads and outlines both manual and automated approaches to diagnose and resolve the issue, emphasizing the use of tools like yCrash.
