The Community for Technology Leaders
2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE) (2017)
Urbana, IL, USA
Oct. 30, 2017 to Nov. 3, 2017
ISBN: 978-1-5386-3976-4
pp: 520-531
Jie Wang , State Key Lab of Computer Science, Institute of Software, Chinese Academy of Sciences, China
Wensheng Dou , State Key Lab of Computer Science, Institute of Software, Chinese Academy of Sciences, China
Yu Gao , State Key Lab of Computer Science, Institute of Software, Chinese Academy of Sciences, China
Chushu Gao , State Key Lab of Computer Science, Institute of Software, Chinese Academy of Sciences, China
Feng Qin , Dept. of Computer Science and Engineering, The Ohio State University, United States
Kang Yin , State Key Lab of Computer Science, Institute of Software, Chinese Academy of Sciences, China
Jun Wei , State Key Lab of Computer Science, Institute of Software, Chinese Academy of Sciences, China
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.
INDEX TERMS
Computer bugs, Concurrent computing, Instruction sets, Open source software, Databases, Testing
CITATION

J. Wang et al., "A comprehensive study on real world concurrency bugs in Node.js," 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE), Urbana, IL, USA, 2017, pp. 520-531.
doi:10.1109/ASE.2017.8115663
181 ms
(Ver 3.3 (11022016))