Unveiling Heisenbugs with Diversified Execution
Arjun Ramesh, Tianshu Huang, Jaspreet Riar, Ben L. Titzer, Anthony Rowe
Abstract
Heisenbugs , notorious for their ability to change behavior and elude reproducibility under observation, are among the toughest challenges in debugging programs. They often evade static detection tools, making them especially prevalent in cyber-physical edge systems characterized by complex dynamics and unpredictable interactions with physical environments. Although dynamic detection tools work much better, most still struggle to meet low enough jitter and overhead performance requirements, impeding their adoption. More importantly however, dynamic tools currently lack metrics to determine an observed bug’s “difficulty” or “heisen–ness” undermining their ability to make any claims regarding their effectiveness against heisenbugs. This paper proposes a methodology for detecting and identifying heisenbugs with low overheads at scale, actualized through the lens of dynamic data-race detection. In particular, we establish the critical impact of execution diversity across both instrumentation density and hardware platforms for detecting heisenbugs; the benefits of which outweigh any reduction in efficiency from limited instrumentation or weaker devices. We develop an experimental WebAssembly-backed dynamic data-race detection framework, Beanstalk, which exploits this diversity to show superior bug detection capability compared to any homogeneous instrumentation strategy on a fixed compute budget. Beanstalk’s approach also gains power with scale , making it suitable for low-overhead deployments across numerous compute nodes. Finally, based on a rigorous statistical treatment of bugs observed by Beanstalk, we propose a novel metric, the heisen factor , that similar detectors can utilize to categorize heisenbugs and measure effectiveness. We reflect on our analysis of Beanstalk to provide insight on effective debugging strategies for both in-house and in deployment settings.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext f6a3b991-3ee7-4ebb-a5af-cd6620d9713dBuilds on8
- A comprehensive study of autonomous vehicle bugsJoshua Garcia, Yang Feng, Junjie Shen, Sumaya Almanee et al.ICSE 2020 · 127 citations
- Snowboard: Finding Kernel Concurrency Bugs through Systematic Inter-thread Communication AnalysisSishuai Gong, Deniz Altinbüken, Pedro Fonseca, Petros ManiatisSOSP 2021 · 26 citations
- When threads meet events: efficient and precise static race detection with originsBozhen Liu, Peiming Liu, Yanze Li, Chia-Che Tsai et al.PLDI 2021 · 17 citations
- Lightweight Fault Isolation: Practical, Efficient, and Secure Software SandboxingZachary YedidiaASPLOS 2024 · 17 citations
- Snowcat: Efficient Kernel Concurrency Testing using a Learned Coverage PredictorSishuai Gong, Dinglan Peng, Deniz Altinbüken, Pedro Fonseca et al.SOSP 2023 · 11 citations
Related papers
- WADIFF: A Differential Testing Framework for WebAssembly RuntimesShiyao Zhou, Muhui Jiang, Weimin Chen, Hao Zhou et al.ASE 2023 · 14 citations
- NodeRT: Detecting Races in Node.js Applications PracticallyJingyao Zhou, Lei Xu, Gongzheng Lu, Weifeng Zhang et al.ISSTA 2023 · 1 citation
- A Binary-level Thread Sanitizer or Why Sanitizing on the Binary Level is HardJoschua Schilling, Andreas Wendler, Philipp Görz, Nils Bars et al.USENIX Security 2024 · 4 citations
- Themis: Detecting Distributed Concurrency Bugs through RPC-Driven Race-Directed Test Generation and FuzzingHongchen Cao, Jingzhu He, Ting Dai, Guoliang JinNSDI 2026 · 1 citation
- LEMIX: Enabling Testing of Embedded Applications as Linux ApplicationsSai Ritvik Tanksalkar, Siddharth Muralee, Srihari Danduri, Paschal C. Amusuo et al.USENIX Security 2025
