Detecting Atomicity Violations for Event-Driven Node.js ApplicationsTechnical TrackIndustry Program
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 detect new atomicity violations in these Node.js applications.
Fri 31 MayDisplayed time zone: Eastern Time (US & Canada) change
11:00 - 12:30 | ConcurrencyTechnical Track / Demonstrations / Papers at St-Denis / Notre-Dame Chair(s): Tuba Yavuz University of Florida | ||
11:00 20mTalk | Safe Automated Refactoring for Intelligent Parallelization of Java 8 StreamsTechnical TrackIndustry Program Technical Track Raffi Khatchadourian City University of New York (CUNY) Hunter College, Yiming Tang City University of New York (CUNY) Graduate Center, Mehdi Bagherzadeh Oakland University, Syed Ahmed Oakland University Pre-print Media Attached | ||
11:20 20mTalk | Detecting Atomicity Violations for Event-Driven Node.js ApplicationsTechnical TrackIndustry Program Technical Track Xiaoning Chang Institute of Software, Chinese Academy of Sciences, Wensheng Dou Institute of Software, Chinese Academy of Sciences, Yu Gao Institute of Software, Chinese Academy of Sciences, China, Jie Wang Institute of Software, Chinese Academy of Sciences, Jun Wei Institute of Software, Chinese Academy of Sciences, China, Tao Huang Institute of Software Chinese Academy of Sciences | ||
11:40 20mTalk | Parallel Refinement for Multi-Threaded Program VerificationTechnical Track Technical Track Liangze Yin National University of Defense Technology, Wei Dong , Wanwei Liu National University of Defense Technology, Ji Wang | ||
12:00 20mTalk | SWORD: A Scalable Whole Program Race Detector for JavaDemos Demonstrations | ||
12:20 10mTalk | Discussion Period Papers |