Node.js is a widely used platform for building JavaScript server-side web applications, desktop applications, and software engineering tools. Its asynchronous execution model is essential for performance, but also gives rise to event races, which cause many subtle bugs that can be hard to detect and reproduce. Current solutions to expose such races are based on modifications of the source code of the Node.js system or on guided executions using complex happens-before modeling.
This paper presents a simpler and more effective approach called NACD that works by dynamically instrumenting core asynchronous operations in the Node.js runtime system to inject delays and thereby reveal event race bugs. It consists of a small, robust runtime instrumentation module implemented in JavaScript that is configured by a flexible JSON model of the essential parts of the Node.js API. Experimental results show that NACD can reproduce event race bugs with higher probability and fewer runs than state-of-the-art tools.
Wed 2 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
14:00 - 15:45 | |||
14:00 21mTalk | Event Race Detection for Node.js Using Delay Injections Technical Papers Pre-print | ||
14:21 21mTalk | FuzzFlesh: Randomised Testing of Decompilers Via Control Flow Graph-based Program GenerationRemote Technical Papers | ||
14:42 21mTalk | PoTo: A Hybrid Andersen's Points-to Analysis for Python Technical Papers Ingkarat Rak-amnouykit Rensselaer Polytechnic Institute, Ana Milanova Rensselaer Polytechnic Institute, Guillaume Baudart Inria, Martin Hirzel IBM Research, Julian Dolby IBM Research | ||
15:03 21mTalk | Wastrumentation: Portable WebAssembly Dynamic Analysis with Support for Intercession Technical Papers Aäron Munsters Vrije Universiteit Brussel, Angel Luis Scull Pupo Sofware Languages Lab, Vrije Universiteit Brussel, Elisa Gonzalez Boix Vrije Universiteit Brussel | ||
15:24 21mTalk | WebGlitch: A Randomised Testing Tool for the WebGPU API Technical Papers | ||