Skip to main content

An Initial Investigation of Concurrency Bugs in Open Source Systems

  • Conference paper
  • First Online:
Proceedings of 5th International Conference in Software Engineering for Defence Applications (SEDA 2016)

Part of the book series: Advances in Intelligent Systems and Computing ((AISC,volume 717))

  • 512 Accesses

Abstract

In the last 10 years CPUs have evolved focusing on performance improvements based on the introduction of multi-core architectures forcing developers to build software in a completely different way. Concurrent programming is now the main approach to improve performances in any software product. Unfortunately, this paradigm is prone to bugs which are particularly hard to fix, since their occurrence depends on specific thread interleaving. The paper investigates bugs related to concurrency analyzing their characteristics with machine learning methods to automatically distinguish them from other kinds of bugs based on the data available in the issue tracking systems and in the code repositories. The best model we developed for Apache HTTP Server has a precision of 0.97 and a recall of 0.843 when considering linked bugs (bug reports information in bug repository and the corresponding fix in the version control system).

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. D.W. Aha, D. Kibler, M.K. Albert, Instance-based learning algorithms. Mach. Learn. 6(1), 1991 (1991)

    Google Scholar 

  2. L. Breiman, Random forests. Mach. Learn. 45(1), 2001 (2001)

    Article  MATH  Google Scholar 

  3. P. Ciancarini, F. Poggi, D. Rossi, A. Sillitti, Improving bug predictions in multicore cyber-physical systems, in Proceedings of 4th International Conference in Software Engineering for Defense Applications (Springer International Publishing), pp. 287–295, 2016

    Google Scholar 

  4. N.V. Chawla, K.W. Bowyer, L.O. Hall, W.P. Kegelmeyer, SMOTE: synthetic minority over-sampling technique. J. Artif. Intell. Res. 16, 321–357 (2002)

    MATH  Google Scholar 

  5. P. Ciancarini, F. Poggi, D. Rossi, A. Sillitti, Mining concurrency bugs, in Embedded Multi-Core Systems for Mixed Criticality Summit 2016 at CPS Week 2016, Vienna, Austria, 11 Apr 2016

    Google Scholar 

  6. I. Coman, A. Sillitti, An empirical exploratory study on inferring developers activities from low-level data, in 19th International Conference on Software Engineering and Knowledge Engineering (SEKE 2007), Boston, MA, USA, 9–11 July 2007

    Google Scholar 

  7. G. Denaro, M. Pezzé, An empirical evaluation of fault proneness models, in 24th International Conference on Software Engineering (ICSE 2002) (ACM, May 2002)

    Google Scholar 

  8. E. Di Bella, A. Sillitti, G. Succi, A multivariate classification of open source developers. Inf. Sci. 221 (2013)

    Google Scholar 

  9. E. Farchi, Y. Nir, S. Ur, Concurrent bug patterns and how to test them, in International Parallel and Distributed Processing Symposium (IPDPS) (IEEE, 2003)

    Google Scholar 

  10. P. Fonseca, C. Li, R. Rodrigues (2011). Finding complex concurrency bugs in large multi-threaded applications, in 6th Conference on Computer Systems (ACM, Apr 2011)

    Google Scholar 

  11. T.L. Graves, A.F. Karr, J.S. Marron, H. Siy, Predicting fault incidence using software change history. IEEE Trans. Softw. Eng. 26(7), 2000 (2000)

    Article  Google Scholar 

  12. T. Hall, S. Beecham, D. Bowes, D. Gray, S. Counsell, A systematic literature review on fault prediction performance in software engineering. IEEE Trans. Softw. Eng. 38(6), 2012 (2012)

    Article  Google Scholar 

  13. H. He, E.A. Garcia, Learning from imbalanced data. IEEE Trans. Knowl. Data Eng. 21(9), 2009 (2009)

    Google Scholar 

  14. G.H. John, P. Langley, Estimating continuous distributions in bayesian classifiers, in 11th Conference on Uncertainty in Artificial Intelligence (Morgan Kaufmann Publishers Inc., 1995), pp. 338–345

    Google Scholar 

  15. S.S. Keerthi, S.K. Shevade, C. Bhattacharyya, K.R.K. Murthy, Improvements to Platt’s SMO algorithm for SVM classifier design. Neural Comput. 13(3), 2001 (2001)

    Article  MATH  Google Scholar 

  16. S. Kim, T. Zimmermann, E.J. Whitehead Jr, A. Zeller (2007). Predicting faults from cached history, in 29th International Conference on Software Engineering (ICSE 2007) (ACM, May 2007)

    Google Scholar 

  17. S. Kim, E.J. Whitehead Jr., Y. Zhang, Classifying software changes: clean or buggy? IEEE Trans. Softw. Eng. 34(2), 2008 (2008)

    Google Scholar 

  18. T.M. Khoshgoftaar, M. Golawala, J. Van Hulse, An empirical study of learning from imbalanced data using random forest, in 19th IEEE International Conference on Tools with Artificial Intelligence (ICTAI 2007) (IEEE, 2007), pp. 310–317

    Google Scholar 

  19. S. Lu, S. Park, E. Seo, Y. Zhou, Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. ACM SIGPLAN Not. 43(3), 2008 (2008)

    Article  Google Scholar 

  20. A.H. Moin, M. Khansari, Bug localization using revision log analysis and open bug repository text categorization, in International Conference on Open Source Systems (OSS 2010) (Springer Berlin Heidelberg, May 2010), pp. 188–199

    Google Scholar 

  21. R. Moser, W. Pedrycz, G. Succi, A comparative analysis of the efficiency of change metrics and static code attributes for defect prediction, in 30th International Conference on Software Engineering (ICSE 2008) (ACM, May 2008), pp. 181–190

    Google Scholar 

  22. N. Nagappan, T. Ball, Use of relative code churn measures to predict system defect density, in 27th International Conference on Software Engineering (ICSE 2005) (IEEE, May 2005), pp. 284–292

    Google Scholar 

  23. N. Nagappan, T. Ball, A. Zeller, Mining metrics to predict component failures, in 28th International Conference on Software Engineering (ICSE 2006) (ACM, May 2006), pp. 452–461

    Google Scholar 

  24. W. Pedrycz, G. Succi, A. Sillitti, J. Iljazi, Data description: a general framework of information granules. Knowledge-Based Systems, Elsevier 80, 2015 (2015)

    Google Scholar 

  25. E. Petrinja, A. Sillitti, G. Succi (2010). Comparing OpenBRR, QSOS, and OMM assessment models, in 6th International Conference on Open Source Systems (OSS 2010), Notre Dame, IN, USA, 30 May–2 June 2010

    Google Scholar 

  26. J. Quinlan, C 4.5: Programs for Machine Learning (Elsevier, 2014)

    Google Scholar 

  27. S. Rao, A. Kak, Retrieval from software libraries for bug localization: a comparative study of generic and composite text models, in 8th Working Conference on Mining Software Repositories (MSR 2011) (ACM, May 2011), pp. 43–52

    Google Scholar 

  28. R. Shatnawi, W. Li, The Effectiveness of software metrics in identifying error-prone classes in post-release software evolution process. J. Syst. Softw. 81(11), 1868–1882 (2008)

    Google Scholar 

  29. J. Śliwerski, T. Zimmermann, A. Zeller, When do changes induce fixes? ACM SIGSOFT Soft. Eng. Notes 30(4), 2005 (2005)

    Google Scholar 

  30. K. Sparck Jones, A statistical interpretation of term specificity and its application in retrieval. J. Doc. 28(1) (1972)

    Google Scholar 

  31. J. Su, H. Zhang, C.X. Ling, S. Matwin, Discriminative parameter learning for Bayesian networks, in 25th International Conference on Machine Learning (ACM, 2008), pp. 1016–1023

    Google Scholar 

  32. E. Weyuker, T. Ostrand, R. Bell, Using developer information as a factor for fault prediction, in International Workshop on Predictor Models in Software Engineering (IEEE, May 2007)

    Google Scholar 

  33. E. Weyuker, T. Ostrand, R. Bell, Do Roo Many Cooks Spoil the Broth? Using the number of developers to enhance defect prediction models. Empir. Softw. Eng. 13(5), 2008 (2008)

    Article  Google Scholar 

  34. K. Youil, L. Jooyong, H. Hwansoo, C. Kwang-Moo, Filtering false alarms of buffer overflow analysis using SMT solvers. Inf. Softw. Technol. 52(2), 2010 (2010)

    Google Scholar 

  35. B. Zhou, I. Neamtiu, R. Gupta, Predicting concurrency bugs: how many, what kind and where are they?, in 19th International Conference on Evaluation and Assessment in Software Engineering (ACM, 2015)

    Google Scholar 

Download references

Acknowledgements

The research presented in this paper has been partially funded by the ARTEMIS project EMC2 (621429).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Paolo Ciancarini .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Ciancarini, P., Poggi, F., Rossi, D., Sillitti, A. (2018). An Initial Investigation of Concurrency Bugs in Open Source Systems. In: Ciancarini, P., Litvinov, S., Messina, A., Sillitti, A., Succi, G. (eds) Proceedings of 5th International Conference in Software Engineering for Defence Applications. SEDA 2016. Advances in Intelligent Systems and Computing, vol 717. Springer, Cham. https://doi.org/10.1007/978-3-319-70578-1_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-70578-1_8

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-70577-4

  • Online ISBN: 978-3-319-70578-1

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics