{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,10]],"date-time":"2025-10-10T01:10:43Z","timestamp":1760058643997,"version":"build-2065373602"},"reference-count":86,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA1","license":[{"start":{"date-parts":[[2025,4,9]],"date-time":"2025-04-09T00:00:00Z","timestamp":1744156800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["2148301, 2148367, 2229731"],"award-info":[{"award-number":["2148301, 2148367, 2229731"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2025,4,9]]},"abstract":"<jats:p>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.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \nThis 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.<\/jats:p>","DOI":"10.1145\/3720428","type":"journal-article","created":{"date-parts":[[2025,4,9]],"date-time":"2025-04-09T13:48:26Z","timestamp":1744206506000},"page":"393-420","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Unveiling Heisenbugs with Diversified Execution"],"prefix":"10.1145","volume":"9","author":[{"ORCID":"https:\/\/orcid.org\/0009-0007-7390-0295","authenticated-orcid":false,"given":"Arjun","family":"Ramesh","sequence":"first","affiliation":[{"name":"Carnegie Mellon University, Pittsburgh, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0005-6788-1302","authenticated-orcid":false,"given":"Tianshu","family":"Huang","sequence":"additional","affiliation":[{"name":"Carnegie Mellon University, Pittsburgh, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0000-7164-2711","authenticated-orcid":false,"given":"Jaspreet","family":"Riar","sequence":"additional","affiliation":[{"name":"Carnegie Mellon University, Pittsburgh, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9690-2089","authenticated-orcid":false,"given":"Ben L.","family":"Titzer","sequence":"additional","affiliation":[{"name":"Carnegie Mellon University, Pittsburgh, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2332-9450","authenticated-orcid":false,"given":"Anthony","family":"Rowe","sequence":"additional","affiliation":[{"name":"Carnegie Mellon University, Pittsburgh, USA"},{"name":"Bosch Research, Pittsburgh, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2025,4,9]]},"reference":[{"key":"e_1_2_2_1_1","unstructured":"[n. d.]. WebAssembly Core Specification. https:\/\/www.w3.org\/TR\/wasm-core-2\/"},{"key":"e_1_2_2_2_1","unstructured":"2017. liblifds: A portable license-free lock-free data structure library written in C. https:\/\/liblfds.org\/index.html"},{"key":"e_1_2_2_3_1","unstructured":"2023. Software-related Recalls Are Still Plaguing the Auto Industry. https:\/\/www.sibros.tech\/post\/software-related-recalls-are-still-plaguing-the-auto-industry (Accessed 2023-1-31)"},{"key":"e_1_2_2_4_1","unstructured":"2023. Wizard Engine. https:\/\/github.com\/titzer\/wizard-engine (Accessed 2023-04-11)"},{"key":"e_1_2_2_5_1","unstructured":"2024. Emscripten: An LLVM-to-WebAssembly Compiler. https:\/\/emscripten.org\/ (Accessed 2024-10-02)"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/SIES.2015.7185039"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-87348-6_6"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/378795.378832"},{"key":"e_1_2_2_9_1","volume-title":"WASI: The WebAssembly System Interface. https:\/\/wasi.dev\/ (Accessed 2023-8-08)","author":"WASI","year":"2023","unstructured":"WASI authors. 2023. WASI: The WebAssembly System Interface. https:\/\/wasi.dev\/ (Accessed 2023-8-08)"},{"key":"e_1_2_2_10_1","volume-title":"WASIX: The Superset of WASI. https:\/\/wasix.org (Accessed 2023-8-08)","author":"Wasmer","year":"2023","unstructured":"Wasmer authors. 2023. WASIX: The Superset of WASI. https:\/\/wasix.org (Accessed 2023-8-08)"},{"key":"e_1_2_2_11_1","unstructured":"Automotive. 2023. Car software is riddled with bugs. https:\/\/privacyfirst.nl\/en\/articles\/connected-cars-and-software-3-0-car-software-is-full-of-faults\/"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640096"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2010.25"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1735970.1736040"},{"key":"e_1_2_2_15_1","unstructured":"Bytecode Alliance. 2019. WebAssembly Micro Runtime. https:\/\/github.com\/bytecodealliance\/wasm-micro-runtime"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2950290.2950310"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/SSIRI-C.2011.18"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2009.5070506"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/512529.512560"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2015.11.021"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE48619.2023.00102"},{"key":"e_1_2_2_22_1","volume-title":"Performance of WebAssembly runtimes","author":"Denis Frank","year":"2023","unstructured":"Frank Denis. 2023. Performance of WebAssembly runtimes in 2023. https:\/\/00f.net\/2023\/01\/04\/webassembly-benchmark-2023\/"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.micpro.2013.08.002"},{"key":"e_1_2_2_24_1","volume-title":"9th USENIX Symposium on Operating Systems Design and Implementation (OSDI 10)","author":"Erickson John","year":"2010","unstructured":"John Erickson, Madanlal Musuvathi, Sebastian Burckhardt, and Kirk Olynyk. 2010. Effective $Data-Race$ Detection for the Kernel. In 9th USENIX Symposium on Operating Systems Design and Implementation (OSDI 10). https:\/\/dl.acm.org\/doi\/10.5555\/1924943.1924954"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2692916.2555263"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/3486607.3486747"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1543135.1542490"},{"key":"e_1_2_2_28_1","volume-title":"11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 14)","author":"Fonseca Pedro","year":"2014","unstructured":"Pedro Fonseca, Rodrigo Rodrigues, and Bj\u00f6rn B Brandenburg. 2014. $SKI$: Exposing Kernel Concurrency Bugs through Systematic Schedule Exploration. In 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 14). 415\u2013431. https:\/\/www.usenix.org\/conference\/osdi14\/technical-sessions\/presentation\/fonseca"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/3423211.3425680"},{"key":"e_1_2_2_30_1","unstructured":"Gallium. [n. d.]. Aarch64 Litmus Test. https:\/\/gallium.inria.fr\/ maranget\/cats7\/model-aarch64\/index.html"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/3377811.3380397"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3477132.3483549"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/3600006.3613148"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.ieri.2013.11.025"},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/3062341.3062363"},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/3238147.3238213"},{"key":"e_1_2_2_37_1","volume-title":"2017 USENIX Annual Technical Conference (USENIX ATC 17)","author":"Huang Shiyou","year":"2017","unstructured":"Shiyou Huang, Bowen Cai, and Jeff Huang. 2017. Towards $Production-Run$ Heisenbugs Reproduction on Commercial Hardware. In 2017 USENIX Annual Technical Conference (USENIX ATC 17). 403\u2013415. https:\/\/www.usenix.org\/conference\/atc17\/technical-sessions\/presentation\/huang"},{"key":"e_1_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-29897-5_33"},{"key":"e_1_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2013.6606613"},{"key":"e_1_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/1595696.1595701"},{"key":"e_1_2_2_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2248487.2150997"},{"key":"e_1_2_2_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517349.2522736"},{"key":"e_1_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1109\/SCAM.2011.16"},{"key":"e_1_2_2_44_1","unstructured":"Steve Klabnik and Carol Nichols. 2023. The Rust programming language. No Starch Press. https:\/\/doc.rust-lang.org\/book\/"},{"key":"e_1_2_2_45_1","doi-asserted-by":"publisher","unstructured":"Leslie Lamport. 2019. Time clocks and the ordering of events in a distributed system. In Concurrency: the Works of Leslie Lamport. 179\u2013196. https:\/\/doi.org\/10.1145\/3335772.3335934 10.1145\/3335772.3335934","DOI":"10.1145\/3335772.3335934"},{"key":"e_1_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/161494.161501"},{"key":"e_1_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/143103.143137"},{"key":"e_1_2_2_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/3597926.3598140"},{"key":"e_1_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/3341301.3359638"},{"key":"e_1_2_2_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/3126908.3126958"},{"key":"e_1_2_2_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/780822.781148"},{"key":"e_1_2_2_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/3453483.3454073"},{"key":"e_1_2_2_53_1","doi-asserted-by":"publisher","DOI":"10.1109\/PDP.2015.19"},{"key":"e_1_2_2_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/3093336.3037723"},{"key":"e_1_2_2_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/2024724.2024842"},{"key":"e_1_2_2_56_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-35182-2_18"},{"key":"e_1_2_2_57_1","doi-asserted-by":"publisher","DOI":"10.1145\/1182807.1182825"},{"key":"e_1_2_2_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/3526059.3533618"},{"key":"e_1_2_2_59_1","volume-title":"Piramanayagam Arumuga Nainar, and Iulian Neamtiu","author":"Musuvathi Madanlal","year":"2008","unstructured":"Madanlal Musuvathi, Shaz Qadeer, Thomas Ball, Gerard Basler, Piramanayagam Arumuga Nainar, and Iulian Neamtiu. 2008. Finding and Reproducing Heisenbugs in Concurrent Programs.. In OSDI. 8, https:\/\/www.usenix.org\/conference\/osdi-08\/finding-and-reproducing-heisenbugs-concurrent-programs"},{"key":"e_1_2_2_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/1133981.1134018"},{"key":"e_1_2_2_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/3434770.3459731"},{"key":"e_1_2_2_62_1","doi-asserted-by":"publisher","DOI":"10.4108\/eai.29-5-2018.154808"},{"key":"e_1_2_2_63_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508244.1508249"},{"key":"e_1_2_2_64_1","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.1064"},{"key":"e_1_2_2_65_1","doi-asserted-by":"publisher","DOI":"10.1145\/1889997.1890000"},{"key":"e_1_2_2_66_1","doi-asserted-by":"publisher","unstructured":"Arjun Ramesh. 2025. Unveiling Heisenbugs with Diversified Execution \u2013 Beanstalk Evaluation Artifact. https:\/\/doi.org\/10.5281\/zenodo.14933663 10.5281\/zenodo.14933663","DOI":"10.5281\/zenodo.14933663"},{"key":"e_1_2_2_67_1","doi-asserted-by":"publisher","unstructured":"Arjun Ramesh Tianshu Huang Ben L Titzer and Anthony Rowe. 2025. Empowering WebAssembly with Thin Kernel Interfaces. isbn:979-8-4007-1196-1\/2025\/03 https:\/\/doi.org\/10.1145\/3689031.3717470 10.1145\/3689031.3717470","DOI":"10.1145\/3689031.3717470"},{"key":"e_1_2_2_68_1","unstructured":"Emily Ruppel. 2023. When Wasm Meets Cyber-Physical Systems: A Discussion of WebAssembly in Real-Time Safety-Critical Systems. https:\/\/events.linuxfoundation.org\/wasmcon\/program\/schedule\/"},{"key":"e_1_2_2_69_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-47115-5_16"},{"key":"e_1_2_2_70_1","doi-asserted-by":"publisher","DOI":"10.1145\/265924.265927"},{"key":"e_1_2_2_71_1","doi-asserted-by":"publisher","DOI":"10.23919\/AEITAUTOMOTIVE50086.2020.9307384"},{"key":"e_1_2_2_72_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375581.1375584"},{"key":"e_1_2_2_73_1","doi-asserted-by":"publisher","DOI":"10.1145\/1791194.1791203"},{"key":"e_1_2_2_74_1","unstructured":"Kristin Shaw. 2024. The EV industry faces a core challenge: software bugs. https:\/\/www.popsci.com\/technology\/ev-software-bugs\/"},{"key":"e_1_2_2_75_1","unstructured":"Silverline Framework. 2023. Runtime Manager for Beanstalk Engine. https:\/\/github.com\/SilverLineFramework\/runtime-manager\/tree\/datarace"},{"key":"e_1_2_2_76_1","doi-asserted-by":"publisher","DOI":"10.1145\/3236024.3275439"},{"key":"e_1_2_2_77_1","doi-asserted-by":"publisher","DOI":"10.1145\/504311.504288"},{"key":"e_1_2_2_78_1","doi-asserted-by":"publisher","DOI":"10.1142\/S021853930100058X"},{"key":"e_1_2_2_79_1","doi-asserted-by":"publisher","DOI":"10.1109\/MECO55406.2022.9797106"},{"key":"e_1_2_2_80_1","doi-asserted-by":"publisher","DOI":"10.1109\/PerComWorkshops48775.2020.9156135"},{"key":"e_1_2_2_81_1","doi-asserted-by":"publisher","DOI":"10.1145\/2451116.2451120"},{"key":"e_1_2_2_82_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11227-015-1418-8"},{"key":"e_1_2_2_83_1","doi-asserted-by":"publisher","DOI":"10.1145\/3620665.3640408"},{"key":"e_1_2_2_84_1","doi-asserted-by":"publisher","DOI":"10.1145\/1095810.1095832"},{"key":"e_1_2_2_85_1","doi-asserted-by":"publisher","DOI":"10.1145\/3093336.3037708"},{"key":"e_1_2_2_86_1","doi-asserted-by":"publisher","DOI":"10.1145\/1143844.1143983"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3720428","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3720428","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,9]],"date-time":"2025-10-09T17:15:12Z","timestamp":1760030112000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3720428"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,4,9]]},"references-count":86,"journal-issue":{"issue":"OOPSLA1","published-print":{"date-parts":[[2025,4,9]]}},"alternative-id":["10.1145\/3720428"],"URL":"https:\/\/doi.org\/10.1145\/3720428","relation":{},"ISSN":["2475-1421"],"issn-type":[{"type":"electronic","value":"2475-1421"}],"subject":[],"published":{"date-parts":[[2025,4,9]]},"assertion":[{"value":"2024-10-15","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-02-18","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-04-09","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}