Actor concurrency bugs: a comprehensive study on symptoms, root causes, API usages, and differences

Author:

Bagherzadeh Mehdi1ORCID,Fireman Nicholas1,Shawesh Anas1,Khatchadourian Raffi2

Affiliation:

1. Oakland University, USA

2. City University of New York, USA

Abstract

Actor concurrency is becoming increasingly important in the development of real-world software systems. Although actor concurrency may be less susceptible to some multithreaded concurrency bugs, such as low-level data races and deadlocks, it comes with its own bugs that may be different. However, the fundamental characteristics of actor concurrency bugs, including their symptoms, root causes, API usages, examples, and differences when they come from different sources are still largely unknown. Actor software development can significantly benefit from a comprehensive qualitative and quantitative understanding of these characteristics, which is the focus of this work, to foster better API documentation, development practices, testing, debugging, repairing, and verification frameworks. To conduct this study, we take the following major steps. First, we construct a set of 186 real-world Akka actor bugs from Stack Overflow and GitHub via manual analysis of 3,924 Stack Overflow questions, answers, and comments and 3,315 GitHub commits, messages, original and modified code snippets, issues, and pull requests. Second, we manually study these actor bugs and their fixes to understand and classify their symptoms, root causes, and API usages. Third, we study the differences between the commonalities and distributions of symptoms, root causes, and API usages of our Stack Overflow and GitHub actor bugs. Fourth, we discuss real-world examples of our actor bugs with these symptoms and root causes. Finally, we investigate the relation of our findings with those of previous work and discuss their implications. A few findings of our study are: (1) symptoms of our actor bugs can be classified into five categories, with Error as the most common symptom and Incorrect Exceptions as the least common, (2) root causes of our actor bugs can be classified into ten categories, with Logic as the most common root cause and Untyped Communication as the least common, (3) a small number of Akka API packages are responsible for most of API usages by our actor bugs, and (4) our Stack Overflow and GitHub actor bugs can differ significantly in commonalities and distributions of their symptoms, root causes, and API usages. While some of our findings agree with those of previous work, others sharply contrast.

Publisher

Association for Computing Machinery (ACM)

Subject

Safety, Risk, Reliability and Quality,Software

Reference84 articles.

1. Stack Overflow. 2012a. Akka Actors app hangs under high volume. https://stackoverflow.com/questions/11141311. Stack Overflow. 2012a. Akka Actors app hangs under high volume. https://stackoverflow.com/questions/11141311.

2. Stack Overflow. 2012b. correctly terminate akka actors in scala. https://stackoverflow.com/questions/12324055/. Stack Overflow. 2012b. correctly terminate akka actors in scala. https://stackoverflow.com/questions/12324055/.

3. GitHub. 2013a. ifx garbling of big Tcp.Write. https://github.com/spray/spray/commit/ 332ba626b193794fd4d753839e664aacd4d302a5. GitHub. 2013a. ifx garbling of big Tcp.Write. https://github.com/spray/spray/commit/ 332ba626b193794fd4d753839e664aacd4d302a5.

4. Stack Overflow. 2013. How should an akka actor be created that might throw an exception? https://stackoverflow.com/ questions/18648390. Stack Overflow. 2013. How should an akka actor be created that might throw an exception? https://stackoverflow.com/ questions/18648390.

5. GitHub. 2013b. Spray Project. https://github.com/spray/spray/commit/e34da115fa43d4d46db0e7ae06eea7fbcbc4fdfd. GitHub. 2013b. Spray Project. https://github.com/spray/spray/commit/e34da115fa43d4d46db0e7ae06eea7fbcbc4fdfd.

Cited by 5 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Akka: Mutation Testing for Actor Concurrency in Akka using Real-World Bugs;Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2023-11-30

2. High-performance Deterministic Concurrency Using Lingua Franca;ACM Transactions on Architecture and Code Optimization;2023-10-26

3. Deductive verification of active objects with Crowbar;Science of Computer Programming;2023-03

4. Challenges in migrating imperative deep learning programs to graph execution;Proceedings of the 19th International Conference on Mining Software Repositories;2022-05-23

5. Well-typed programs can go wrong: a study of typing-related bugs in JVM compilers;Proceedings of the ACM on Programming Languages;2021-10-20

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3