Detecting Atomicity Violations for Event-Driven Node.js']js Applications

被引:20
|
作者
Chang, Xiaoning [1 ]
Dou, Wensheng [1 ]
Gao, Yu [1 ]
Wang, Jie [1 ]
Wei, Jun [1 ]
Huang, Tao [1 ]
机构
[1] Univ Chinese Acad Sci, Chinese Acad Sci, Inst Software, State Key Lab Comp Sci, Beijing, Peoples R China
基金
中国国家自然科学基金; 国家重点研发计划;
关键词
Node.[!text type='js']js[!/text; event-driven architecture; atomicity violation; happens-before; RACE DETECTION; BUGS;
D O I
10.1109/ICSE.2019.00073
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
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.
引用
收藏
页码:631 / 642
页数:12
相关论文
共 50 条
  • [31] Code-based Vulnerability Detection in Node.js']js Applications: How far are we?
    Chinthanet, Bodin
    Ponta, Serena Elisa
    Plate, Henrik
    Sabetta, Antonino
    Kula, Raula Gaikovina
    Ishio, Takashi
    Matsumoto, Kenichi
    [J]. 2020 35TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2020), 2020, : 1199 - 1203
  • [32] Strand: scalable trilateration with Node.js
    Konstantinos Tserpes
    Maria Pateraki
    Iraklis Varlamis
    [J]. Journal of Cloud Computing, 8
  • [33] Node.js后端技术初探
    张钊源
    刘晓瑜
    鞠玉霞
    [J]. 中小企业管理与科技, 2020, (08) : 193 - 194
  • [34] Energy and Runtime Performance Optimization of Node.js']js Web Requests
    Patrou, Maria
    Kent, Kenneth B.
    Siu, Joran
    Dawson, Michael
    [J]. 2021 IEEE INTERNATIONAL CONFERENCE ON CLOUD ENGINEERING, IC2E 2021, 2021, : 71 - 82
  • [35] A horizontally-scalable multiprocessing platform based on Node.js']js
    Maatouki, Ahmad
    Meyer, Joerg
    Szuba, Marek
    Streit, Achim
    [J]. 2015 IEEE TRUSTCOM/BIGDATASE/ISPA, VOL 3, 2015, : 100 - 107
  • [36] A Comprehensive Study on Real World Concurrency Bugs in Node.js']js
    Wang, Jie
    Dou, Wensheng
    Gao, Yu
    Gao, Chushu
    Qin, Feng
    Yin, Kang
    Wei, Jun
    [J]. PROCEEDINGS OF THE 2017 32ND IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE'17), 2017, : 520 - 531
  • [37] Analysis of Node.js']js Application Performance Using MongoDB Drivers
    Cayres, Leandro Ungari
    de Lima, Bruno Santos
    Garcia, Rogerio Eduardo
    Messias Correia, Ronaldo Celso
    [J]. INFORMATION TECHNOLOGY AND SYSTEMS, ICITS 2020, 2020, 1137 : 213 - 222
  • [38] Asynchronous Interaction Framework for Verilog Simulation Virtualization on Node.js']js
    Heo, Daeun
    Park, Daejin
    [J]. 2021 INTERNATIONAL CONFERENCE ON ELECTRONICS, INFORMATION, AND COMMUNICATION (ICEIC), 2021,
  • [39] Research on TCP/IP Network Communication based on Node.js']js
    Huang, Jing
    Cai, Lixiong
    [J]. ADVANCES IN MATERIALS, MACHINERY, ELECTRONICS II, 2018, 1955
  • [40] A REAL-TIME STREAM SYSTEM BASED ON NODE.JS']JS
    Gu, Xiao-Feng
    Yang, Le
    Wu, Shaoquan
    [J]. 2014 11TH INTERNATIONAL COMPUTER CONFERENCE ON WAVELET ACTIVE MEDIA TECHNOLOGY AND INFORMATION PROCESSING (ICCWAMTIP), 2014, : 479 - 482