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.
Supplemental Material
- Stack Overflow. 2012a. Akka Actors app hangs under high volume. https://stackoverflow.com/questions/11141311.Google Scholar
- Stack Overflow. 2012b. correctly terminate akka actors in scala. https://stackoverflow.com/questions/12324055/.Google Scholar
- GitHub. 2013a. ifx garbling of big Tcp.Write. https://github.com/spray/spray/commit/ 332ba626b193794fd4d753839e664aacd4d302a5.Google Scholar
- Stack Overflow. 2013. How should an akka actor be created that might throw an exception? https://stackoverflow.com/ questions/18648390.Google Scholar
- GitHub. 2013b. Spray Project. https://github.com/spray/spray/commit/e34da115fa43d4d46db0e7ae06eea7fbcbc4fdfd.Google Scholar
- Stack Overflow. 2014. akka.io dispatcher configuration Exception. https://stackoverflow.com/questions/21686327.Google Scholar
- Stack Overflow. 2016. postRestart and preRestart methods are not getting invoked in akka actors. https://stackoverflow. com/questions/37608915.Google Scholar
- Stack Overflow. 2017a. Actor Name is not Unique InvalidActorNameException. https://stackoverflow.com/questions/ 11693562/.Google Scholar
- Stack Overflow. 2017b. Doesn't immediately stop child Akka actors when parent actor stopped. https://stackoverflow.com/ questions/45574085.Google Scholar
- Stack Overflow. 2017c. How to use futures with Akka for asynchronous results. https://stackoverflow.com/questions/ 11693562/.Google Scholar
- Stack Overflow. 2018a. Cannot establish remote communication with Akka. https://stackoverflow.com/questions/53188945.Google Scholar
- Stack Overflow. 2018b. Scala Akka Actor-Dead Letters encountered. https://stackoverflow.com/questions/53200356.Google Scholar
- Stack Overflow. 2018c. Send message to actor after restart from Supervisor. https://stackoverflow.com/questions/48446194.Google Scholar
- Stack Overflow. 2019. Akka Routing: Reply's send to router ends up as dead letters. https://stackoverflow.com/questions/ 20564381/.Google Scholar
- Gul Agha. 1986. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, MA, USA.Google Scholar
Digital Library
- Gul Agha and Carl Hewitt. 1985. Concurrent Programming Using Actors: Exploiting Large-Scale Parallelism. In Proceedings of the Fifth Conference on Foundations of Software Technology and Theoretical Computer Science. Springer-Verlag, Berlin, Heidelberg, 19-41.Google Scholar
Cross Ref
- Syed Ahmed and Mehdi Bagherzadeh. 2018. What Do Concurrency Developers Ask about? A Large-Scale Study Using Stack Overflow. In Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (Oulu, Finland) (ESEM '18). Association for Computing Machinery, New York, NY, USA, Article 30, 10 pages. https://doi.org/10.1145/3239235.3239524 Google Scholar
Digital Library
- Akka 2.6.5 API. May 2020. https://doc.akka.io/api/akka/current/akka/index.html.Google Scholar
- Akka Actor Reference Config. April 2020. https://github.com/akka/akka/blob/master/akka-actor/src/main/resources/ reference.conf.Google Scholar
- Akka Typed. May 2020. https://doc.akka.io/docs/akka/current/typed/index.html.Google Scholar
- Apache. 2015. Akka Actors in Spark. https://issues.apache.org/jira/browse/SPARK-5293.Google Scholar
- Joe Armstrong. 2007. Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf.Google Scholar
Digital Library
- Mehdi Bagherzadeh and Rafi Khatchadourian. 2019. Going Big: A Large-Scale Study on What Big Data Developers Ask. In Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (Tallinn, Estonia) (ESEC/FSE 2019 ). Association for Computing Machinery, New York, NY, USA, 432-442. https://doi.org/10.1145/3338906.3338939 Google Scholar
Digital Library
- Mehdi Bagherzadeh and Hridesh Rajan. 2015. Panini: A Concurrent Programming Model for Solving Pervasive and Oblivious Interference. In Proceedings of the 14th International Conference on Modularity (Fort Collins, CO, USA) ( MODULARITY 2015). ACM, New York, NY, USA, 93-108. https://doi.org/10.1145/2724525.2724568 Google Scholar
Digital Library
- Mehdi Bagherzadeh and Hridesh Rajan. 2017. Order Types: Static Reasoning About Message Races in Asynchronous Message Passing Concurrency. In Proceedings of the 7th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control (Vancouver, BC, Canada) ( AGERE 2017). ACM, New York, NY, USA, 21-30. https://doi.org/10.1145/3141834.3141837 Google Scholar
Digital Library
- Thomas Ball, Mayur Naik, and Sriram K. Rajamani. 2003. From Symptom to Cause: Localizing Errors in Counterexample Traces. In Proceedings of the 30th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (New Orleans, Louisiana, USA) ( POPL '03). Association for Computing Machinery, New York, NY, USA, 97-105. https: //doi.org/10.1145/604131.604140 Google Scholar
Digital Library
- Anton Barua, Stephen W. Thomas, and Ahmed E. Hassan. 2014. What Are Developers Talking About? An Analysis of Topics and Trends in Stack Overflow. Empirical Softw. Engg. 19, 3 ( June 2014 ), 619-654. https://doi.org/10.1007/s10664-012-9231-y Google Scholar
Digital Library
- Phil Bernstein, Sergey Bykov, Alan Geller, Gabriel Kliot, and Jorgen Thelin. 2014. Orleans: Distributed Virtual Actors for Programmability and Scalability. Technical Report MSR-TR-2014-41. https://www.microsoft.com/en-us/research/ publication/orleans-distributed-virtual-actors-for-programmability-and-scalability/Google Scholar
- Pamela Bhattacharya, Iulian Neamtiu, and Christian R. Shelton. 2012. Automated, Highly-Accurate, Bug Assignment Using Machine Learning and Tossing Graphs. J. Syst. Softw. 85, 10 (Oct. 2012 ), 2275-2292. https://doi.org/10.1016/j.jss. 2012. 04. 053 Google Scholar
Digital Library
- Francesco Adalberto Bianchi, Alessandro Margara, and Mauro Pezze. 2018. A Survey of Recent Trends in Testing Concurrent Software Systems. IEEE Trans. Softw. Eng. 44, 8 (Aug. 2018 ), 747-783. https://doi.org/10.1109/TSE. 2017.2707089 Google Scholar
Digital Library
- Sumon Biswas, Md Johirul Islam, Yijia Huang, and Hridesh Rajan. 2019. Boa Meets Python: A Boa Dataset of Data Science Software in Python Language. In Proceedings of the 16th International Conference on Mining Software Repositories (Montreal, Quebec, Canada) ( MSR '19). IEEE Press, 577-581. https://doi.org/10.1109/MSR. 2019. 00086 ( ICSE '20). IEEE Press. Google Scholar
Digital Library
- Khari Johnson. 2018. GitHub passes 100 million repositories. https://venturebeat.com/ 2018 /11/08/github-passes-100-millionrepositories/.Google Scholar
- Rafi Khatchadourian, Johan Dovland, and Neelam Soundarajan. 2008. Enforcing Behavioral Constraints in Evolving AspectOriented Programs. In Proceedings of the 7th Workshop on Foundations of Aspect-Oriented Languages (Brussels, Belgium) (FOAL '08). Association for Computing Machinery, New York, NY, USA, 19-28. https://doi.org/10.1145/1394496.1394499 Google Scholar
Digital Library
- Rafi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, and Syed Ahmed. 2018. A Tool for Optimizing Java 8 Stream Software via Automated Refactoring. In International Working Conference on Source Code Analysis and Manipulation (Madrid, Spain) ( SCAM '18). IEEE, IEEE Press, 34-39. https://doi.org/10.1109/SCAM. 2018.00011 Google Scholar
Cross Ref
- Rafi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, and Syed Ahmed. 2019. Safe Automated Refactoring for Intelligent Parallelization of Java 8 Streams. In Proceedings of the 41st International Conference on Software Engineering (Montreal, Quebec, Canada) ( ICSE '19). IEEE Press, Piscataway, NJ, USA, 619-630. https://doi.org/10.1109/ICSE. 2019.00072 Google Scholar
Digital Library
- Rafi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, and Baishakhi Ray. 2020. An Empirical Study on the Use and Misuse of Java 8 Streams. In International Conference on Fundamental Approaches to Software Engineering (FASE 2020 ). ETAPS, Springer, 97-118. https://doi.org/10.1007/978-3-030-45234-6_5 Google Scholar
Cross Ref
- Atul S. Khot. 2018. Concurrent Patterns and Best Practices: Build Scalable Apps with Patterns in Multithreading, Synchronization, and Functional Programming. Packt Publishing.Google Scholar
- Sunghun Kim and E. James Whitehead. 2006. How Long Did It Take to Fix Bugs?. In Proceedings of the 2006 International Workshop on Mining Software Repositories (Shanghai, China) ( MSR '06). Association for Computing Machinery, New York, NY, USA, 173-174. https://doi.org/10.1145/1137983.1138027 Google Scholar
Digital Library
- Steven Lauterburg, Mirco Dotta, Darko Marinov, and Gul Agha. 2009. A Framework for State-Space Exploration of JavaBased Actor Programs. In Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering (ASE '09). IEEE Computer Society, Washington, DC, USA, 468-479. https://doi.org/10.1109/ASE. 2009.88 Google Scholar
Digital Library
- Steven Lauterburg, Rajesh K. Karmani, Darko Marinov, and Gul Agha. 2010. Evaluating Ordering Heuristics for Dynamic Partial-order Reduction Techniques. In Proceedings of the 13th International Conference on Fundamental Approaches to Software Engineering (Paphos, Cyprus) ( FASE'10). Springer-Verlag, Berlin, Heidelberg, 308-322. https://doi.org/10.1007/ 978-3-642-12029-9_22 Google Scholar
Digital Library
- Edward A. Lee. 2006. The Problem with Threads. Computer 39, 5 (May 2006 ), 33-42. https://doi.org/10.1109/ MC. 2006.180 Google Scholar
Digital Library
- Tanakorn Leesatapornwongsa, Jefrey F. Lukman, Shan Lu, and Haryadi S. Gunawi. 2016. TaxDC: A Taxonomy of NonDeterministic Concurrency Bugs in Datacenter Distributed Systems. In Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems (Atlanta, Georgia, USA) ( ASPLOS '16). ACM, New York, NY, USA, 517-530. https://doi.org/10.1145/2872362.2872374 Google Scholar
Digital Library
- Mark C. Lewis and Lisa L. Lacher. 2016. Object-Orientation, Abstraction, and Data Structures Using Scala, Second Edition (2nd ed.). Chapman & Hall/CRC.Google Scholar
- He Li, Jie Luo, and Wei Li. 2014. A formal semantics for debugging synchronous message passing-based concurrent programs. Science China Information Sciences 57, 12 ( 2014 ), 1-18.Google Scholar
- Sihan Li, Farah Hariri, and Gul Agha. 2018. Targeted Test Generation for Actor Systems. In 32nd European Conference on Object-Oriented Programming (ECOOP 2018 ) (Leibniz International Proceedings in Informatics (LIPIcs)), Todd Millstein (Ed.), Vol. 109. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany, 8 : 1-8 : 31. https://doi.org/10. 4230/LIPIcs.ECOOP. 2018.8 Google Scholar
Cross Ref
- Zhenmin Li and Yuanyuan Zhou. 2005. PR-Miner: Automatically Extracting Implicit Programming Rules and Detecting Violations in Large Software Code. In Proceedings of the 10th European Software Engineering Conference Held Jointly with 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering (Lisbon, Portugal) (ESEC/FSE-13). ACM, New York, NY, USA, 306-315. https://doi.org/10.1145/1081706.1081755 Google Scholar
Digital Library
- B. Liang, P. Bian, Y. Zhang, W. Shi, W. You, and Y. Cai. 2016. AntMiner: Mining More Bugs by Reducing Noise Interference. In 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE). 333-344. https://doi.org/10.1145/2884781. 2884870 Google Scholar
Digital Library
- Lightbend. 2019a. Akka. https://www.lightbend. com/akka-part-of-lightbend-platform.Google Scholar
- Lightbend. 2019b. Customer Case Studies. https://www.lightbend. com/case-studies#filter:akka.Google Scholar
- Lightbend. 2020a. Akka Documentation : Supervision and Monitoring. https://doc.akka.io/docs/akka/2.5/general/supervision. html.Google Scholar
- Lightbend. 2020b. Akka.actor Documentation. https://doc.akka.io/api/akka/current/akka/actor/Actor.html.Google Scholar
- Lightbend. 2020c. How Groupon Scales Personalized Ofers To 48 Million Customers On Time. https://www.lightbend. com/case-studies/groupon-scalability-personalized-ofers-to-48-million-customers.Google Scholar
- Lightbend. 2020d. PayPal Blows Past 1 Billion Transactions Per Day Using Just 8 VMs With Akka, Scala, Kafka and Akka Streams. https://www.lightbend. com/case-studies/paypal-blows-past-1-billion-transactions-per-day-using-just-8-vmsand-akka-scala-kafka-and-akka-streams.Google Scholar
- Yuheng Long, Mehdi Bagherzadeh, Eric Lin, Ganesha Upadhyaya, and Hridesh Rajan. 2016. On Ordering Problems in Message Passing Software. In Proceedings of the 15th International Conference on Modularity (Málaga, Spain) ( MODULARITY 2016). ACM, New York, NY, USA, 54-65. https://doi.org/10.1145/2889443.2889444 Google Scholar
Digital Library
- Carmen Torres Lopez, Robbert Gurdeep Singh, Stefan Marr, Elisa Gonzalez Boix, and Christophe Scholliers. 2019. Multiverse Debugging: Non-Deterministic Debugging for Non-Deterministic Programs (Brave New Idea Paper). In 33rd European Conference on Object-Oriented Programming, ECOOP 2019, July 15-19, 2019, London, United Kingdom (LIPIcs), Alastair F. Donaldson (Ed.), Vol. 134. Schloss Dagstuhl-Leibniz-Zentrum für Informatik, 27 : 1-27 : 30. https://doi.org/10.4230/LIPIcs. ECOOP. 2019.27 Google Scholar
Cross Ref
- Shan Lu, Soyeon Park, Eunsoo Seo, and Yuanyuan Zhou. 2008. Learning from Mistakes: A Comprehensive Study on Real World Concurrency Bug Characteristics. In Proceedings of the 13th International Conference on Architectural Support for Programming Languages and Operating Systems (Seattle, WA, USA) (ASPLOS XIII). ACM, New York, NY, USA, 329-339. https://doi.org/10.1145/1346281.1346323 Google Scholar
Digital Library
- Manuel Bernhardt. 2020. Akka anti-patterns: race condition. https://manuel.bernhardt.io/ 2016 /08/16/akka-anti-patternsrace-conditions/.Google Scholar
- Na Meng, Stefan Nagy, Danfeng (Daphne) Yao, Wenjie Zhuang, and Gustavo Arango Argoty. 2018. Secure Coding Practices in Java: Challenges and Vulnerabilities. In Proceedings of the 40th International Conference on Software Engineering (Gothenburg, Sweden) (ICSE '18). Association for Computing Machinery, New York, NY, USA, 372-383. https://doi.org/ 10.1145/3180155.3180201 Google Scholar
Digital Library
- Martin Monperrus. 2014. A Critical Review of "Automatic Patch Generation Learned from Human-Written Patches": Essay on the Problem Statement and the Evaluation of Automatic Software Repair. In Proceedings of the 36th International Conference on Software Engineering (Hyderabad, India) (ICSE 2014 ). Association for Computing Machinery, New York, NY, USA, 234-242. https://doi.org/10.1145/2568225.2568324 Google Scholar
Digital Library
- Sarah Nadi, Stefan Krüger, Mira Mezini, and Eric Bodden. 2016. Jumping through Hoops: Why Do Java Developers Struggle with Cryptography APIs?. In Proceedings of the 38th International Conference on Software Engineering (Austin, Texas) ( ICSE '16). Association for Computing Machinery, New York, NY, USA, 935-946. https://doi.org/10.1145/2884781.2884790 Google Scholar
Digital Library
- Stas Negara, Rajesh K. Karmani, and Gul Agha. 2011. Inferring Ownership Transfer for Eficient Message Passing. SIGPLAN Not. 46, 8 (Feb. 2011 ), 81-90. https://doi.org/10.1145/2038037.1941566 Google Scholar
Digital Library
- Netty. May 2020. https://netty.io/.Google Scholar
- NLTK Project. 2020. Porter Stemming Algorithm in NLTK 3.4.5. https://www.nltk.org/api/nltk.stem.html.Google Scholar
- Hridesh Rajan. 2015. Capsule-Oriented Programming. In Proceedings of the 37th International Conference on Software Engineering-Volume 2 ( Florence, Italy) (ICSE '15). IEEE Press, 611-614.Google Scholar
- Baishakhi Ray, Vincent Hellendoorn, Saheel Godhane, Zhaopeng Tu, Alberto Bacchelli, and Premkumar Devanbu. 2016. On the "Naturalness" of Buggy Code. In Proceedings of the 38th International Conference on Software Engineering (Austin, Texas) ( ICSE '16). Association for Computing Machinery, New York, NY, USA, 428-439. https://doi.org/10.1145/2884781.2884848 Google Scholar
Digital Library
- Christofer Rosen and Emad Shihab. 2016. What Are Mobile Developers Asking about? A Large Scale Study Using Stack Overflow. Empirical Softw. Engg. 21, 3 ( June 2016 ), 1192-1223. https://doi.org/10.1007/s10664-015-9379-3 Google Scholar
Digital Library
- Scala 2.13.2 API. May 2020. https://www.scala-lang.org/api/current/scala/index.html.Google Scholar
- Christophe Scholliers, Eric Tanter, and Wolfgang De Meuter. 2014. Parallel actor monitors: Disentangling task-level parallelism from data partitioning in the actor model. Science of Computer Programming 80 ( 2014 ), 52-64. https: //doi.org/10.1016/j.scico. 2013. 03.011 Special section on foundations of coordination languages and software architectures (selected papers from FOCLASA'10), Special section-Brazilian Symposium on Programming Languages (SBLP 2010 ) and Special section on formal methods for industrial critical systems (Selected papers from FMICS'11). Google Scholar
Digital Library
- Koushik Sen and Gul Agha. 2006. Automated Systematic Testing of Open Distributed Programs. In Proceedings of the 9th International Conference on Fundamental Approaches to Software Engineering (Vienna, Austria) ( FASE'06). Springer-Verlag, Berlin, Heidelberg, 339-356. https://doi.org/10.1007/11693017_25 Google Scholar
Digital Library
- Stack Exchange. December 2019. https://archive.org/details/stackexchange.Google Scholar
- Stack Overflow. 2020. How to create a Minimal, Reproducible Example. https://stackoverflow.com/help/minimal-reproducibleexample.Google Scholar
- Quentin Stiévenart, Jens Nicolay, Wolfgang De Meuter, and Coen De Roover. 2017. Mailbox Abstractions for Static Analysis of Actor Programs. In 31st European Conference on Object-Oriented Programming (ECOOP 2017 ) (Leibniz International Proceedings in Informatics (LIPIcs)), Peter Müller (Ed.), Vol. 74. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany, 25 : 1-25 : 30. https://doi.org/10.4230/LIPIcs.ECOOP. 2017.25 Google Scholar
Cross Ref
- Janwillem Swalens, Stefan Marr, Joeri De Koster, and Tom Van Cutsem. 2014. Towards Composable Concurrency Abstractions, In Proceedings of the Workshop on Programming Language Approaches to Concurrency and communication-cEntric Software (PLACES). EPTCS 155, 54-60. https://doi.org/10.4204/EPTCS.155.8 Google Scholar
Cross Ref
- Samira Tasharofi, Peter Dinges, and Ralph E. Johnson. 2013. Why Do Scala Developers Mix the Actor Model with Other Concurrency Models?. In Proceedings of the 27th European Conference on Object-Oriented Programming (Montpellier, France) (ECOOP'13). Springer-Verlag, Berlin, Heidelberg, 302-326. https://doi.org/10.1007/978-3-642-39038-8_13 Google Scholar
Digital Library
- Samira Tasharofi, Rajesh K. Karmani, Steven Lauterburg, Axel Legay, Darko Marinov, and Gul Agha. 2012. TransDPOR: A Novel Dynamic Partial-order Reduction Technique for Testing Actor Programs. In Proceedings of the 14th Joint IFIP WG 6.1 International Conference and Proceedings of the 32Nd IFIP WG 6.1 International Conference on Formal Techniques for Distributed Systems (Stockholm, Sweden) ( FMOODS'12/FORTE'12). Springer-Verlag, Berlin, Heidelberg, 219-234. https://doi.org/10.1007/978-3-642-30793-5_14 Google Scholar
Digital Library
- S. Tasharofi, M. Pradel, Y. Lin, and R. Johnson. 2013. Bita: Coverage-guided, automatic testing of actor programs. In 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE). 114-124. https://doi.org/10.1109/ASE. 2013.6693072 Google Scholar
Digital Library
- Carmen Torres Lopez, Elisa Gonzalez Boix, Christophe Scholliers, Stefan Marr, and Hanspeter Mössenböck. 2017. A Principled Approach towards Debugging Communicating Event-Loops. In Proceedings of the 7th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control (Vancouver, BC, Canada) ( AGERE 2017 ). Association for Computing Machinery, New York, NY, USA, 41-49. https://doi.org/10.1145/3141834.3141839 Google Scholar
Digital Library
- Carmen Torres Lopez, Stefan Marr, Elisa Gonzalez Boix, and Hanspeter Mössenböck. 2018. A Study of Concurrency Bugs and Advanced Development Support for Actor-based Programs. In Programming with Actors-State-of-the-Art and Research Perspectives. 155-185. https://doi.org/10.1007/978-3-030-00302-9_6 Google Scholar
Cross Ref
- Tengfei Tu, Xiaoyu Liu, Linhai Song, and Yiying Zhang. 2019. Understanding Real-World Concurrency Bugs in Go. In Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems (Providence, RI, USA) ( ASPLOS '19). ACM, New York, NY, USA, 865-878. https://doi.org/10.1145/ 3297858.3304069 Google Scholar
Digital Library
- Jie Wang, Wensheng Dou, Yu Gao, Chushu Gao, Feng Qin, Kang Yin, and Jun Wei. 2017. A Comprehensive Study on Real World Concurrency Bugs in Node.Js. In Proceedings of the 32Nd IEEE/ACM International Conference on Automated Software Engineering (Urbana-Champaign, IL, USA) ( ASE 2017). IEEE Press, Piscataway, NJ, USA, 520-531. http://dl.acm.org/citation.cfm?id= 3155562. 3155628Google Scholar
Cross Ref
- Xin-Li Yang, David Lo, Xin Xia, Zhi-Yuan Wan, and Jian-Ling Sun. 2016. What Security Questions Do Developers Ask? A Large-Scale Study of Stack Overflow Posts. Journal of Computer Science and Technology 31, 5 ( 01 Sep 2016 ), 910-924. https://doi.org/10.1007/s11390-016-1672-0 Google Scholar
Cross Ref
- Jie Yu. 2013. Finding and Tolerating Concurrency Bugs. Ph.D. Dissertation. The University of Michigan.Google Scholar
- Yuhao Zhang, Yifan Chen, Shing-Chi Cheung, Yingfei Xiong, and Lu Zhang. 2018. An Empirical Study on TensorFlow Program Bugs. In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis (Amsterdam, Netherlands) ( ISSTA 2018). ACM, New York, NY, USA, 129-140. https://doi.org/10.1145/3213846.3213866 Google Scholar
Digital Library
- Bo Zhou, Iulian Neamtiu, and Rajiv Gupta. 2015. Predicting Concurrency Bugs: How Many, What Kind and Where Are They?. In Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering (Nanjing, China) (EASE '15). Association for Computing Machinery, New York, NY, USA, Article 6, 10 pages. https: //doi.org/10.1145/2745802.2745807 Google Scholar
Digital Library
- Thomas Zimmermann, Nachiappan Nagappan, Philip J. Guo, and Brendan Murphy. 2012. Characterizing and Predicting Which Bugs Get Reopened. In Proceedings of the 34th International Conference on Software Engineering (Zurich, Switzerland) (ICSE '12). IEEE Press, 1074-1083.Google Scholar
Digital Library
Index Terms
Actor concurrency bugs: a comprehensive study on symptoms, root causes, API usages, and differences
Recommendations
Advanced debugging techniques to identify concurrency bugs in actor-based programs
SPLASH Companion 2017: Proceedings Companion of the 2017 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for HumanityActor-based programs are not exempt from concurrency bugs. Inspiring contributions for debugging actor-based programs have been developed, however there is no approach that reliably identifies the root cause of complex concurrency bugs. Solving this ...
Predicting concurrency bugs: how many, what kind and where are they?
EASE '15: Proceedings of the 19th International Conference on Evaluation and Assessment in Software EngineeringConcurrency bugs are difficult to find and fix. To help with finding and fixing concurrency bugs, prior research has mostly focused on static or dynamic analyses for finding specific classes of bugs. We present an approach whose focus is understanding ...
Towards exploring the code reuse from stack overflow during software development
ICPC '22: Proceedings of the 30th IEEE/ACM International Conference on Program ComprehensionAs one of the most well-known programmer Q&A websites, Stack Overflow (i.e., SO) is serving tens of thousands of developers every day. Previous work has shown that many developers reuse the code snippets on SO when they find an answer (from SO) that ...






Comments