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.

JAX London 2022 – YOU MIGHT BE WASTING MILLIONS OF DOLLARS IN GARBAGE COLLECTION

JAX London is an annual October conference for Java and Software Architecture enthusiasts. In 2022, architect Ram Lakshmanan highlighted how enterprises waste millions on garbage collection. He emphasized the need for optimization to save costs and enhance customer experience, drawing attention to the significant financial impact of poor garbage collection practices.

Troubleshooting App unresponsiveness due to Oracle DB

The application experienced a slowdown when connecting to Oracle RAC due to resource constraints, impacting response times. Troubleshooting involved using the yCrash script for artifact collection and analysis, revealing that 46% of threads were blocking on database calls. The Oracle DBA confirmed resource issues, which, once resolved, restored normal application performance.

Troubleshooting deadlock in an Apache opensource library

Apache PDFBox is a Java library for handling PDF documents. A recent deadlock issue was identified, blocking two threads that were waiting for each other's resources. Troubleshooting involved capturing thread dumps and analyzing them, which led to filing a bug report with the Apache PDFBox team, who promptly addressed the issue.

Troubleshooting HTTP 502 bad gateway in AWS EBS 

The post discusses troubleshooting an intermittent HTTP 502 Bad Gateway error in an AWS Elastic Beanstalk application running on a Java Tomcat server. The error resulted from the Tomcat server being terminated due to insufficient RAM. Upgrading the EC2 instance's RAM from 1GB to 2GB resolved the issue.

“Learn yCrash” series

yCrash addresses the limitations of traditional Application Performance Monitoring tools by providing insights into the root causes of problems. It captures and analyzes various technology stack artifacts like logs and dumps. NaveenKumar Namachivayam offers a video series to guide users in learning to utilize yCrash effectively.

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.