kirancodes.me
To Proof Maintenance & Beyond!

A comprehensive study on real world concurrency bugs in Node.js

Jie Wang, Wensheng Dou, Yu Gao, Chushu Gao, Feng Qin, Kang Yin, Jun Wei

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.

BibTeX
@inproceedings{Wang-al:ASE17,
  author    = {Jie Wang and
               Wensheng Dou and
               Yu Gao and
               Chushu Gao and
               Feng Qin and
               Kang Yin and
               Jun Wei},
  title     = {A comprehensive study on real world concurrency bugs in Node.js},
  booktitle = {ASE},
  pages     = {520--531},
  publisher = {{IEEE} Computer Society},
  year      = {2017},
}

Related papers