[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2642937.2642990acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
research-article

42 variability bugs in the linux kernel: a qualitative analysis

Published: 15 September 2014 Publication History

Abstract

Feature-sensitive verification pursues effective analysis of the exponentially many variants of a program family. However, researchers lack examples of concrete bugs induced by variability, occurring in real large-scale systems. Such a collection of bugs is a requirement for goal-oriented research, serving to evaluate tool implementations of feature-sensitive analyses by testing them on real bugs. We present a qualitative study of 42 variability bugs collected from bug-fixing commits to the Linux kernel repository. We analyze each of the bugs, and record the results in a database. In addition, we provide self-contained simplified C99 versions of the bugs, facilitating understanding and tool evaluation. Our study provides insights into the nature and occurrence of variability bugs in a large C software system, and shows in what ways variability affects and increases the complexity of software bugs.

References

[1]
S. Apel, D. Batory, C. Kästner, and G. Saake. Feature-Oriented Software Product Lines. Springer-Verlag, 2013.
[2]
S. Apel, C. Kästner, A. Grösslinger, and C. Lengauer. Type safety for feature-oriented product lines. Automated Software Engineering, 17, 2010.
[3]
S. Apel, H. Speidel, P. Wendler, A. von Rhein, and D. Beyer. Detection of feature interactions using feature-aware verification. In Proceedings of the 26th IEEE/ACM International Conference on Automated Software Engineering (ASE'11), Lawrence, USA, 2011. IEEE Computer Society.
[4]
T. Berger, R. Rublack, D. Nair, J. M. Atlee, M. Becker, K. Czarnecki, and A. Wasowski. A survey of variability modeling in industrial practice. In S. Gnesi, P. Collet, and K. Schmid, editors, VaMoS. ACM, 2013.
[5]
T. Berger, S. She, R. Lotufo, A. Wasowski, and K. Czarnecki. A study of variability models and languages in the systems software domain. IEEE Trans. Software Eng., 39(12).
[6]
E. Bodden, T. Tolêdo, M. Ribeiro, C. Brabrand, P. Borba, and M. Mezini. SPLLIFT - statically analyzing software product lines in minutes instead of years. In PLDI'13, 2013.
[7]
E. Bounimova, P. Godefroid, and D. Molnar. Billions and billions of constraints: Whitebox fuzz testing in production. In Proceedings of the 2013 International Conference on Software Engineering, ICSE '13, Piscataway, NJ, USA, 2013. IEEE Press.
[8]
D. Bovet and M. Cesati. Understanding the Linux Kernel. O'Reilly Media, 2005.
[9]
C. Brabrand, M. Ribeiro, T. Tol^edo, J. Winther, and P. Borba. Intraprocedural data flow analysis for software product lines. Transactions on Aspect-Oriented Software Development, 10, 2013.
[10]
W. R. Bush, J. D. Pincus, and D. J. Sielaff. A static analyzer for finding dynamic programming errors. Softw. Pract. Exper., 30(7), June 2000.
[11]
M. Calder, M. Kolberg, E. H. Magill, and S. Reiff-Marganiec. Feature interaction: A critical review and considered forecast. Comput. Netw., 41(1), 2003.
[12]
A. Classen, P. Heymans, P.-Y. Schobbens, and A. Legay. Symbolic model checking of software product lines. In ICSE, 2011.
[13]
A. Classen, P. Heymans, P.-Y. Schobbens, A. Legay, and J.-F. Raskin. Model checking lots of systems: efficient verification of temporal properties in software product lines. In ICSE'10, Cape Town, South Africa, 2010. ACM.
[14]
K. Czarnecki and K. Pietroszek. Verifying feature-based model templates against well-formedness OCL constraints. In Proceedings of the 5th international conference on Generative programming and component engineering, GPCE '06, New York, NY, USA, 2006. ACM.
[15]
N. Dor, M. Rodeh, and M. Sagiv. CSSV: Towards a Realistic Tool for Statically Detecting All Buffer Over flows in C. SIGPLAN Not., 38(5), 2003.
[16]
D. Evans. Static detection of dynamic memory errors. SIGPLAN Not., 31(5), 1996.
[17]
A. Gruler, M. Leucker, and K. D. Scheidemann. Modeling and model checking software product lines. In FMOODS, 2008.
[18]
G. Holl, M. Vierhauser, W. Heider, P. Grünbacher, and R. Rabiser. Product line bundles for tool support in multi product lines. In VaMoS, 2011.
[19]
D. Hovemeyer and W. Pugh. Finding more null pointer bugs, but not too many. In Proceedings of the 7th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, PASTE '07, New York, NY, USA, 2007. ACM.
[20]
K. Kang, S. Cohen, J. Hess, W. Nowak, and S. Peterson. Feature-oriented domain analysis (FODA) feasibility study. Tech.Rep.Carnegie Mellon University/SEI-90-TR-21, Carnegie Mellon University-SEI, 1990.
[21]
C. Kästner. Virtual Separation of Concerns: Toward Preprocessors 2.0. PhD thesis, Marburg, Germany, 2010.
[22]
C. Kästner and S. Apel. Type-checking software product lines - a formal approach. In Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering (ASE'08), L'Aquila, Italy, 2008.
[23]
A. Kenner, C. Kästner, S. Haase, and T. Leich. Typechef: Toward type checking #ifdef variability in c. In Proceedings of the 2Nd International Workshop on Feature-Oriented Software Development, FOSD '10, New York, NY, USA, 2010. ACM.
[24]
C. H. P. Kim, E. Bodden, D. Batory, and S. Khurshid. Reducing configurations to monitor in a software product line. In 1st International Conference on Runtime Verification (RV), volume 6418 of LNCS, Malta, 2010. Springer.
[25]
R. Love. Linux Kernel Development. Developer's Library. Pearson Education, 2010.
[26]
F. Medeiros, M. Ribeiro, and R. Gheyi. Investigating preprocessor-based syntax errors. In Proceedings of the 12th International Conference on Generative Programming: Concepts & Experiences, GPCE '13, New York, NY, USA, 2013. ACM.
[27]
S. Nadi, T. Berger, C. Kästner, and K. Czarnecki. Mining configuration constraints: Static analyses and empirical results. In 36th International Conference on Software Engineering (ICSE'14), 2014.
[28]
S. Nadi, C. Dietrich, R. Tartler, R. C. Holt, and D. Lohmann. Linux variability anomalies: what causes them and how do they get fixed? In T. Zimmermann, M. D. Penta, and S. Kim, editors, MSR. IEEE / ACM, 2013.
[29]
Y. Padioleau, J. L. Lawall, and G. Muller. Understanding collateral evolution in linux device drivers. In Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006, EuroSys '06, New York, NY, USA, 2006. ACM.
[30]
H. Post and C. Sinz. Configuration lifting: Verification meets software configuration. In Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering (ASE'08), L'Aquila, Italy, 2008. IEEE Computer Society.
[31]
J. Slaby, J. Strejçek, and M. Trtík. ClabureDB: Classified Bug-Reports Database. In R. Giacobazzi, J. Berdine, and I. Mastroeni, editors, Verification, Model Checking, and Abstract Interpretation, volume 7737 of Lecture Notes in Computer Science. Springer Berlin Heidelberg, 2013.
[32]
The Institute of Electrical and Eletronics Engineers. IEEE Standard Glossary of Software Engineering Terminology. IEEE Standard, 1990.
[33]
T. Thüm, S. Apel, C. Kästner, I. Schaefer, and G. Saake. A classification and survey of analysis strategies for software product lines. ACM Computing Surveys, 2014.
[34]
Y. Tian, J. Lawall, and D. Lo. Identifying linux bug fixing patches. In Proceedings of the 2012 International Conference on Software Engineering, ICSE 2012, Piscataway, NJ, USA, 2012. IEEE Press.
[35]
D. Wagner, J. S. Foster, E. A. Brewer, and A. Aiken. A first step towards automated detection of buffer overrun vulnerabilities. In NDSS. The Internet Society, 2000.
[36]
Z. Yin, X. Ma, J. Zheng, Y. Zhou, L. N. Bairavasundaram, and S. Pasupathy. An empirical study on configuration errors in commercial and open source systems. In Proc. of the Twenty-Third ACM Symposium on Operating Systems Principles SOSP '11, New York, NY, USA, 2011. ACM.

Cited By

View all
  • (2024)Understanding Vulnerability Inducing Commits of the Linux KernelACM Transactions on Software Engineering and Methodology10.1145/367245233:7(1-28)Online publication date: 14-Jun-2024
  • (2024)Mining Fix Patterns for System Interaction BugsProceedings of the 15th Asia-Pacific Symposium on Internetware10.1145/3671016.3671398(367-376)Online publication date: 24-Jul-2024
  • (2024)A Scalable $t$t-Wise Coverage Estimator: Algorithms and ApplicationsIEEE Transactions on Software Engineering10.1109/TSE.2024.341991950:8(2021-2039)Online publication date: 1-Aug-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ASE '14: Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering
September 2014
934 pages
ISBN:9781450330138
DOI:10.1145/2642937
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 September 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. bugs
  2. feature interactions
  3. linux
  4. software variability

Qualifiers

  • Research-article

Conference

ASE '14
Sponsor:

Acceptance Rates

ASE '14 Paper Acceptance Rate 82 of 337 submissions, 24%;
Overall Acceptance Rate 82 of 337 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)55
  • Downloads (Last 6 weeks)11
Reflects downloads up to 12 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Understanding Vulnerability Inducing Commits of the Linux KernelACM Transactions on Software Engineering and Methodology10.1145/367245233:7(1-28)Online publication date: 14-Jun-2024
  • (2024)Mining Fix Patterns for System Interaction BugsProceedings of the 15th Asia-Pacific Symposium on Internetware10.1145/3671016.3671398(367-376)Online publication date: 24-Jul-2024
  • (2024)A Scalable $t$t-Wise Coverage Estimator: Algorithms and ApplicationsIEEE Transactions on Software Engineering10.1109/TSE.2024.341991950:8(2021-2039)Online publication date: 1-Aug-2024
  • (2024)Virtual Platform: Effective and Seamless Variability Management for Software SystemsIEEE Transactions on Software Engineering10.1109/TSE.2024.340622450:11(2753-2785)Online publication date: Nov-2024
  • (2024)Towards Unveiling Exploitation Potential With Multiple Error Behaviors for Kernel BugsIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2023.324617021:1(93-109)Online publication date: Jan-2024
  • (2024)vKernel: Enhancing Container Isolation via Private Code and DataIEEE Transactions on Computers10.1109/TC.2024.338398873:7(1711-1723)Online publication date: Jul-2024
  • (2024)Baital: Sampling Configurable Systems with high t-wise coverageScience of Computer Programming10.1016/j.scico.2024.103209(103209)Online publication date: Sep-2024
  • (2024)ROBUST: 221 bugs in the Robot Operating SystemEmpirical Software Engineering10.1007/s10664-024-10440-029:3Online publication date: 23-Mar-2024
  • (2023)A Systematic Mapping of the Proposition of Benchmarks in the Software Testing and Debugging DomainSoftware10.3390/software20400212:4(447-475)Online publication date: 12-Oct-2023
  • (2023)An Experiment on How Feature Dependent Variables Affect Configurable System ComprehensibilityProceedings of the 17th Brazilian Symposium on Software Components, Architectures, and Reuse10.1145/3622748.3622755(61-70)Online publication date: 25-Sep-2023
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media