Range Fixes: Interactive Error Resolution for Software Configuration

To prevent ill-formed configurations, highly configurable software often allows defining constraints over the available options. As these constraints can be complex, fixing a configuration that violates one or more constraints can be challenging. Although several fix-generation approaches exist, their applicability is limited because (1) they typically generate only one fix or a very long fix list, difficult for the user to identify the desirable fix; and (2) they do not fully support non-Boolean constraints, which contain arithmetic, inequality, and string operators. This paper proposes a novel concept, range fix, for software configuration. A range fix specifies the options to change and the ranges of values for these options. We also design an algorithm that automatically generates range fixes for a violated constraint. We have evaluated our approach with three different strategies for handling constraint interactions, on data from nine open source projects over two configuration platforms. The evaluation shows that our notion of range fix leads to mostly simple yet complete sets of fixes, and our algorithm is able to generate fixes within one second for configuration systems with a few thousands options and constraints.

[1]  S. She,et al.  Formal Semantics of the Kconfig Language Technical Note , 2010 .

[2]  Krzysztof Czarnecki,et al.  A user survey of configuration challenges in Linux and eCos , 2012, VaMoS '12.

[3]  Lothar Schmitz,et al.  Managing inconsistent repositories via prioritized repairs , 2004, DocEng '04.

[4]  Bo Wang,et al.  A dynamic-priority based approach to fixing inconsistent feature models , 2010, MODELS'10.

[5]  Yingfei Xiong Congurator Semantics of the CDL language , 2011 .

[6]  Sorin Lerner,et al.  OPIUM: Optimal Package Install/Uninstall Manager , 2007, 29th International Conference on Software Engineering (ICSE'07).

[7]  Haiyan Zhao,et al.  Supporting automatic model inconsistency fixing , 2009, ESEC/SIGSOFT FSE.

[8]  Wolfgang Emmerich,et al.  Consistency management with repair actions , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[9]  Ulrich Junker,et al.  QUICKXPLAIN: Preferred Explanations and Relaxations for Over-Constrained Problems , 2004, AAAI.

[10]  Nikolaj Bjørner,et al.  Path Feasibility Analysis for String-Manipulating Programs , 2009, TACAS.

[11]  Raymond Reiter,et al.  A Theory of Diagnosis from First Principles , 1986, Artif. Intell..

[12]  Xiao Ma,et al.  An empirical study on configuration errors in commercial and open source systems , 2011, SOSP.

[13]  Bo Wang,et al.  SmartFixer: fixing software configurations based on dynamic priorities , 2013, SPLC '13.

[14]  S. She,et al.  Formal Semantics of the CDL Language Technical Note , 2014 .

[15]  Krzysztof Czarnecki,et al.  Generating range fixes for software configuration , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[16]  Douglas C. Schmidt,et al.  Automated Diagnosis of Product-Line Configuration Errors in Feature Models , 2008, 2008 12th International Software Product Line Conference.

[17]  Mikolás Janota,et al.  Proceedings of the Twenty-Third International Joint Conference on Artificial Intelligence On Computing Minimal Correction Subsets , 2022 .

[18]  Josep Argelich,et al.  Solving Linux Upgradeability Problems Using Boolean Optimization , 2010, LoCoCo.

[19]  Frank Verstraete Quantum Hamiltonian complexity: Worth the wait , 2015 .

[20]  Miguel Toro,et al.  Automated error analysis for the agilization of feature modeling , 2008, J. Syst. Softw..

[21]  Krzysztof Czarnecki,et al.  Variability modeling in the real: a perspective from the operating systems domain , 2010, ASE '10.

[22]  Alexander Egyed,et al.  Generating and Evaluating Choices for Fixing Inconsistencies in UML Design Models , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[23]  Michael D. Ernst,et al.  Automated diagnosis of software configuration errors , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[24]  Ana Moreira,et al.  A cover-based approach for configuration repair , 2014, SPLC.

[25]  Ernest Davis,et al.  Constraint Propagation with Interval Labels , 1987, Artif. Intell..

[26]  Krzysztof Czarnecki,et al.  Feature and Meta-Models in Clafer: Mixed, Specialized, and Coupled , 2010, SLE.

[27]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[28]  Mikolás Janota,et al.  How to Complete an Interactive Configuration Process? , 2010, SOFSEM.

[29]  Derek Rayside,et al.  Comparison of exact and approximate multi-objective optimization for software product lines , 2014, SPLC.

[30]  Marcilio Mendonça,et al.  Efficient Reasoning Techniques for Large Scale Feature Models , 2009 .

[31]  Russell Greiner,et al.  A Correction to the Algorithm in Reiter's Theory of Diagnosis , 1989, Artif. Intell..

[32]  Friedrich Steimann,et al.  Generic Model Assist , 2013, MoDELS.

[33]  Krzysztof Czarnecki,et al.  Mining configuration constraints: static analyses and empirical results , 2014, ICSE.

[34]  Krzysztof Czarnecki,et al.  A study of non-Boolean constraints in variability models of an embedded operating system , 2011, SPLC '11.

[35]  Krzysztof Czarnecki,et al.  A Study of Variability Models and Languages in the Systems Software Domain , 2013, IEEE Transactions on Software Engineering.

[36]  Armin Biere,et al.  Managing SAT inconsistencies with HUMUS , 2012, VaMoS '12.

[37]  Saurabh Sinha,et al.  Automated support for repairing input-model faults , 2010, ASE.

[38]  R. M. Jensen,et al.  FAST BACKTRACK-FREE PRODUCT CONFIGURATION USING A PRECOMPILED SOLUTION SPACE REPRESENTATION , 2004 .

[39]  Markus Stumptner,et al.  Consistency-based diagnosis of configuration knowledge bases , 1999, Artif. Intell..

[40]  Krzysztof Czarnecki,et al.  Feature Diagrams and Logics: There and Back Again , 2007 .

[41]  M. Wyllie,et al.  Is it worth the wait? , 2009, BJU international.

[42]  Martin Rinard,et al.  Automatic detection and repair of errors in data structures , 2003, OOPSLA 2003.

[43]  Rupak Majumdar,et al.  Cause clue clauses: error localization using maximum satisfiability , 2010, PLDI '11.

[44]  Randy H. Katz,et al.  Precomputing possible configuration error diagnoses , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[45]  Cesare Tinelli,et al.  The SMT-LIB Standard: Version 1.2 , 2005 .

[46]  Yuanyuan Zhou,et al.  Do not blame users for misconfigurations , 2013, SOSP.

[47]  Clark W. Barrett,et al.  The SMT-LIB Standard Version 2.0 , 2010 .