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.

Highlights

  • Actor concurrency is becoming increasingly important in the development of real-world software systems, which are built using industrial-strength actor programming frameworks and languages, such as Akka [Lightbend 2019a], Orleans [Bernstein et al 2014], and Erlang [Armstrong 2007]

  • Actor concurrency comes with its own bugs that are different from multithreaded concurrency bugs

  • This work advances our knowledge of actor bugs, 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

Read more

Summary

INTRODUCTION

Actor concurrency is becoming increasingly important in the development of real-world software systems, which are built using industrial-strength actor programming frameworks and languages, such as Akka [Lightbend 2019a], Orleans [Bernstein et al 2014], and Erlang [Armstrong 2007]. This work advances our knowledge of actor bugs, 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. RQ4: Differences of actor concurrency bugs in Akka How different are the symptoms, root causes, and API usages for Akka actor bugs in Stack Overflow and GitHub? We manually study these actor bugs and their fixes to understand and classify their symptoms, root causes, and API usages. We study the differences between the commonalities and distributions of symptoms, root causes, and API usages of our actor bugs in Stack Overflow and GitHub. Fourth, we discuss real-world examples of actor bugs with these symptoms and root causes. All the data used in this study are publicly available at https:// tinyurl.com/ y4rkwhco under a Creative Commons Attribution 4.0 International license

Data Collection
Data Analysis
Basic Actor Concurrency
Akka Actor Concurrency
SYMPTOMS
Symptom 1
Symptom 2
Symptom 3
Symptom 4
Symptom 5
Implications
ROOT CAUSES
Root Cause 1
Root Cause 2
Root Cause 3
Root Cause 4
Root Cause 5
Root Cause 6
Root Cause 7
Root Cause 8
Root Cause 9
5.10 Root Cause 10
5.11 Implications
API USAGES
Symptoms
Root Causes
API Usages
THREATS TO VALIDITY
RELATED WORK
Findings
10 CONCLUSIONS AND FUTURE WORK
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call