Race Detection for Event-Driven Node.js Applications
Xiaoning Chang, Wensheng Dou, Jun Fang Wei, Tao Huang, Jinhui Xie, Yuetang Deng, Jianbo Yang, Jiaheng Yang · 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE) · 2021
Node.js has become a widely-used event-driven architecture for server-side and desktop applications. Node.js provides an effective asynchronous event-driven programming model, and supports asynchronous tasks and multi-priority event queues. Unexpected races among events and asynchronous tasks can cause severe consequences. Existing race detection approaches in Node.js applications mainly adopt random fuzzing technique, and can miss races due to large schedule space.In this paper, we propose a dynamic race detection approach NRace for Node.js applications. In NRace, we build precise happens-before relations among events and asynchronous tasks in Node.js applications, which also take multi-priority event queues into consideration. We further develop a predictive race detection technique based on these relations. We evaluate NRace on 10 realworld Node.js applications. The experimental result shows that NRace can precisely detect 6 races, and 5 of them have been confirmed by developers.