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 条
  • [1] Race Detection for Event-Driven Node.js']js Applications
    Chang, Xiaoning
    Dou, Wensheng
    Wei, Jun
    Huang, Tao
    Xie, Jinhui
    Deng, Yuetang
    Yang, Jianbo
    Yang, Jiaheng
    [J]. 2021 36TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING ASE 2021, 2021, : 480 - 491
  • [2] Static Analysis of Event-Driven Node.js']js Java']JavaScript Applications
    Madsen, Magnus
    Tip, Frank
    Lhotak, Ondrej
    [J]. ACM SIGPLAN NOTICES, 2015, 50 (10) : 505 - 519
  • [3] NodeRT: Detecting Races in Node.js']js Applications Practically
    Zhou, Jingyao
    Xu, Lei
    Lu, Gongzheng
    Zhang, Weifeng
    Zhang, Xiangyu
    [J]. PROCEEDINGS OF THE 32ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, ISSTA 2023, 2023, : 1332 - 1344
  • [4] NodeRacer: Event Race Detection for Node.js']js Applications
    Endo, Andre Takeshi
    Moller, Anders
    [J]. 2020 IEEE 13TH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VALIDATION AND VERIFICATION (ICST 2020), 2020, : 120 - 130
  • [5] NODEST: Feedback-Driven Static Analysis of Node.js']js Applications
    Nielsen, Benjamin Barslev
    Hassanshahi, Behnaz
    Gauthier, Francois
    [J]. ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2019, : 455 - 465
  • [6] Characterizing Flaky Tests in Node.js']js Applications
    Chang, Xiaoning
    Liang, Zheheng
    Wu, Guoquan
    Gao, Yu
    Chen, Wei
    Wei, Jun
    Long, Zhenyue
    Cui, Lei
    Huang, Tao
    [J]. 2023 38TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, ASE, 2023, : 1753 - 1755
  • [7] NodeMOP: Runtime Verification for Node.js']js Applications
    Schiavio, Filippo
    Sun, Haiyang
    Bonetta, Daniele
    Rosa, Andrea
    Binder, Walter
    [J]. SAC '19: PROCEEDINGS OF THE 34TH ACM/SIGAPP SYMPOSIUM ON APPLIED COMPUTING, 2019, : 1794 - 1801
  • [8] Reasoning about the Node.js']js Event Loop using Async Graphs
    Sun, Haiyang
    Bonetta, Daniele
    Schiavio, Filippo
    Binder, Walter
    [J]. PROCEEDINGS OF THE 2019 IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION (CGO '19), 2019, : 61 - 72
  • [9] Assessing the Security of Node.js']js Platform
    Ojamaa, Andres
    Dueuena, Karl
    [J]. 2012 INTERNATIONAL CONFERENCE FOR INTERNET TECHNOLOGY AND SECURED TRANSACTIONS, 2012, : 348 - 355
  • [10] Strand: scalable trilateration with Node.js']js
    Tserpes, Konstantinos
    Pateraki, Maria
    Varlamis, Iraklis
    [J]. JOURNAL OF CLOUD COMPUTING-ADVANCES SYSTEMS AND APPLICATIONS, 2019, 8 (01):