Advertisement

A Study of Concurrency Bugs in an Open Source Software

  • Sara Abbaspour Asadollah
  • Daniel Sundmark
  • Sigrid Eldh
  • Hans  Hansson
  • Eduard Paul Enoiu
Conference paper
Part of the IFIP Advances in Information and Communication Technology book series (IFIPAICT, volume 472)

Abstract

Concurrent programming puts demands on software debugging and testing, as concurrent software may exhibit problems not present in sequential software, e.g., deadlocks and race conditions. In aiming to increase efficiency and effectiveness of debugging and bug-fixing for concurrent software, a deep understanding of concurrency bugs, their frequency and fixing-times would be helpful. Similarly, to design effective tools and techniques for testing and debugging concurrent software understanding the differences between non-concurrency and concurrency bugs in real-word software would be useful. This paper presents an empirical study focusing on understanding the differences and similarities between concurrency bugs and other bugs, as well as the differences among various concurrency bug types in terms of their severity and their fixing time. Our basis is a comprehensive analysis of bug reports covering several generations of an open source software system. The analysis involves a total of 4872 bug reports from the last decade, including 221 reports related to concurrency bugs. We found that concurrency bugs are different from other bugs in terms of their fixing time and their severity. Our findings shed light on concurrency bugs and could thereby influence future design and development of concurrent software, their debugging and testing, as well as related tools.

Keywords

Concurrency bugs Bug severity Fixing time Open source software 

Notes

Acknowledgment

This research is supported by Swedish Foundation for Strategic Research (SSF), SYNOPSIS project and the Swedish Knowledge Foundation (KKS), TOCSYC project.

References

  1. 1.
    Lu, S., Park, S., Seo, E., Zhou, Y.: Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. In: ACM Sigplan Notices, vol. 43, pp. 329–339. ACM (2008)Google Scholar
  2. 2.
    Peri, R.: Software development tools for multi-core/parallel programming. In: 6th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging, p. 9. ACM (2008)Google Scholar
  3. 3.
    Zhang, W., Sun, C., Lim, J., Lu, S., Reps, T.: Conmem: detecting crash-triggering concurrency bugs through an effect-oriented approach. ACM Trans. Softw. Eng. Methodol. (TOSEM) 22(2), 10 (2013)CrossRefGoogle Scholar
  4. 4.
    Desouza, J., Kuhn, B., De Supinski, B.R., SamDofalov, V., Zheltov, S., Bratanov, S.: Automated, scalable debugging of MPI programs with Intel message checker. In: Proceedings of the Second International Workshop on Software Engineering for High Performance Computing System Applications, pp. 78–82. ACM (2005)Google Scholar
  5. 5.
    Godefroid, P., Nagappan, N.: Concurrency at Microsoft: an exploratory survey. In: CAV Workshop on Exploiting Concurrency Efficiently and Correctly (2008)Google Scholar
  6. 6.
    Süß, M., Leopold, C.: Common mistakes in OpenMP and how to avoid them. In: Mueller, M.S., Chapman, B.M., de Supinski, B.R., Malony, A.D., Voss, M. (eds.) IWOMP 2005 and IWOMP 2006. LNCS, vol. 4315, pp. 312–323. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  7. 7.
    Fonseca, P., Li, C., Singhal, V., Rodrigues, R.: A study of the internal and external effects of concurrency bugs. In: 2010 IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), pp. 221–230. IEEE (2010)Google Scholar
  8. 8.
    Polato, I., Ré, R., Goldman, A., Kon, F.: A comprehensive view of hadoop research? a systematic literature review. J. Netw. Comput. Appl. 46, 1–25 (2014)CrossRefGoogle Scholar
  9. 9.
    What is an Issue - Atlassian Documentation (2015). https://confluence.atlassian.com/jira063/what-is-an-issue-683542485.html
  10. 10.
    Asadollah, S.A., Hansson, H., Sundmark, D., Eldh, S.: Towards classification of concurrency bugs based on observable properties. In: 1st International Workshop on Complex Faults and Failures in Large Software Systems, Italy (2015)Google Scholar
  11. 11.
    Qi, S., Otsuki, N., Nogueira, L.O., Muzahid, A., J. Torrellas.: Pacman: tolerating asymmetric data races with unintrusive hardware. In: 2012 IEEE 18th International Symposium on High Performance Computer Architecture, pp. 1–12. IEEE (2012)Google Scholar
  12. 12.
    Vargha, A., Delaney, H.D.: A critique and improvement of the CL common language effect size statistics of McGraw and Wong. J. Educ. Behav. Stat. 25(2), 101–132 (2000)Google Scholar
  13. 13.
    Neuhaus, S., Zimmermann, T., Holler, C., Zeller, A.: Predicting vulnerable software components. In: Proceedings of the 14th ACM Conference on Computer and Communications Security, pp. 529–540. ACM (2007)Google Scholar
  14. 14.
    Nagappan, N., Ball, T.: Static analysis tools as early indicators of pre-release defect density. In: 27th International Conference on Software Engineering, pp. 580–586. ACM (2005)Google Scholar
  15. 15.
    Rahman, F., Khatri, S., Barr, E.T., Devanbu, P.: Comparing static bug finders and statistical prediction. In: Proceedings of the 36th International Conference on Software Engineering, pp. 424–434. ACM (2014)Google Scholar
  16. 16.
    Lewis, C., Lin, Z., Sadowski, C., Zhu, X., Ou, R., Whitehead, E.J.: Does bug prediction support human developers? findings from a google case study. In: 2013 35th International Conference on Software Engineering (ICSE), pp. 372–381. IEEE (2013)Google Scholar
  17. 17.
    Voinea, L., Telea, A.: How do changes in buggy Mozilla files propagate? In: Proceedings of the 2006 ACM Symposium on Software Visualization, pp. 147–148. ACM (2006)Google Scholar
  18. 18.
    Pan, W.-F., Li, B., Ma, Y.-T., Qin, Y.-Y., Zhou, X.-Y.: Measuring structural quality of object-oriented softwares via bug propagation analysis on weighted software networks. J. Comput. Sci. Technol. 25(6), 1202–1213 (2010)CrossRefGoogle Scholar
  19. 19.
    Vandiver, B., Balakrishnan, H., Liskov, B., Madden, S.: Tolerating byzantine faults in transaction processing systems using commit barrier scheduling. ACM SIGOPS Operating Syst. Rev. 41(6), 59–72 (2007)CrossRefGoogle Scholar
  20. 20.
    Chandra, S., Chen, P.M.: Whither generic recovery from application faults? a fault study using open-source software. In: Proceedings International Conference on Dependable Systems and Networks, DSN 2000, pp. 97–106. IEEE (2000)Google Scholar
  21. 21.
    Farchi, E., Nir, Y., Ur, S.: Concurrent bug patterns and how to test them. In: Parallel and Distributed Processing Symposium, p. 7. IEEE (2003)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2016

Authors and Affiliations

  • Sara Abbaspour Asadollah
    • 1
  • Daniel Sundmark
    • 1
  • Sigrid Eldh
    • 2
  • Hans  Hansson
    • 1
  • Eduard Paul Enoiu
    • 1
  1. 1.Mälardalen UniversityVästeråsSweden
  2. 2.Ericsson ABKistaSweden

Personalised recommendations