Title
A comprehensive study on real world concurrency bugs in Node.js.
Abstract
Node.js becomes increasingly popular in building server-side JavaScript applications. It adopts an event-driven model, which supports asynchronous I/O and non-deterministic event processing. This asynchrony and non-determinism can introduce intricate concurrency bugs, and leads to unpredictable behaviors. An in-depth understanding of real world concurrency bugs in Node.js applications will significantly promote effective techniques in bug detection, testing and fixing for Node.js. In this paper, we present NodeCB, a comprehensive study on real world concurrency bugs in Node.js applications. Specifically, we have carefully studied 57 real bug cases from open-source Node.js applications, and have analyzed their bug characteristics, e.g., bug patterns and root causes, bug impacts, bug manifestation, and fix strategies. Through this study, we obtain several interesting findings, which may open up many new research directions in combating concurrency bugs in Node.js. For example, one finding is that two thirds of the bugs are caused by atomicity violation. However, due to lack of locks and transaction mechanism, Node.js cannot easily express and guarantee the atomic intention.
Year
DOI
Venue
2017
10.1109/ASE.2017.8115663
ASE
Keywords
Field
DocType
JavaScript, Node.js, event-driven, concurrency bug, empirical study
Atomicity,Asynchronous communication,Software engineering,Concurrency,Computer science,Instruction set,Software bug,Complex event processing,Theoretical computer science,Concurrent computing,JavaScript,Distributed computing
Conference
ISSN
ISBN
Citations 
1527-1366
978-1-5386-2684-9
8
PageRank 
References 
Authors
0.45
29
7
Name
Order
Citations
PageRank
Jie Wang1213.04
Wenshen Dou210015.17
Yu Gao3151.94
Chushu Gao4729.84
Feng Qin52459.80
Kang Yin680.45
Jun Wei758288.35