Title
Detecting atomicity violations for event-driven Node.js applications
Abstract
Node.js has been widely-used as an event-driven server-side architecture. To improve performance, a task in a Node.js application is usually divided into a group of events, which are non-deterministically scheduled by Node.js. Developers may assume that the group of events (named atomic event group) should be atomically processed, without interruption. However, the atomicity of an atomic event group is not guaranteed by Node.js, and thus other events may interrupt the execution of the atomic event group, break down the atomicity and cause unexpected results. Existing approaches mainly focus on event race among two events, and cannot detect high-level atomicity violations among a group of events. In this paper, we propose NodeAV, which can predictively detect atomicity violations in Node.js applications based on an execution trace. Based on happens-before relations among events in an execution trace, we automatically identify a pair of events that should be atomically processed, and use predefined atomicity violation patterns to detect atomicity violations. We have evaluated NodeAV on real-world Node.js applications. The experimental results show that NodeAV can effectively detect atomicity violations in these Node.js applications.
Year
DOI
Venue
2019
10.1109/ICSE.2019.00073
Proceedings of the 41st International Conference on Software Engineering
Keywords
Field
DocType
Node.js, atomicity violation, event-driven architecture, happens-before
Atomicity,Interrupt,Event-driven architecture,Computer science,Real-time computing,Elementary event,Distributed computing
Conference
ISSN
ISBN
Citations 
0270-5257
978-1-7281-0870-4
1
PageRank 
References 
Authors
0.35
15
6
Name
Order
Citations
PageRank
Xiaoning Chang110.35
Wenshen Dou210015.17
Yu Gao3151.94
Jie Wang431.38
Jun Wei558288.35
Tao Huang6739.16