MicroRacer: Detecting Concurrency Bugs for Cloud Service Systems
By: Zhiling Deng, Juepeng Wang, Zhuangbin Chen
Modern cloud applications delivering global services are often built on distributed systems with a microservice architecture. In such systems, end-to-end user requests traverse multiple different services and machines, exhibiting intricate interactions. Consequently, cloud service systems are vulnerable to concurrency bugs, which pose significant challenges to their reliability. Existing methods for concurrency bug detection often fall short due to their intrusive nature and inability to handle the architectural complexities of microservices. To address these limitations, we propose MicroRacer, a non-intrusive and automated framework for detecting concurrency bugs in such environments. By dynamically instrumenting widely-used libraries at runtime, MicroRacer collects detailed trace data without modifying the application code. Such data are utilized to analyze the happened-before relationship and resource access patterns of common operations within service systems. Based on this information, MicroRacer identifies suspicious concurrent operations and employs a three-stage validation process to test and confirm concurrency bugs. Experiments on open-source microservice benchmarks with replicated industrial bugs demonstrate MicroRacer's effectiveness and efficiency in accurately detecting and pinpointing concurrency issues.
Similar Papers
Deep Learning Based Concurrency Bug Detection and Localization
Software Engineering
Finds hidden computer program errors faster.
DR.FIX: Automatically Fixing Data Races at Industry Scale
Distributed, Parallel, and Cluster Computing
Fixes computer bugs automatically in Go programs.
Concurrency Testing in the Linux Kernel via eBPF
Operating Systems
Finds hidden computer bugs faster and easier.