230 likes | 357 Views
Characterizing Configuration Problems in Java EE Application Servers: An Empirical Study with GlassFish and JBoss. Fahad A. Arshad , Rebecca J. Krause , Saurabh Bagchi Dependable Computing Systems Laboratory (DCSL) School of Electrical and Computer Engineering. November 5th , 2013.
E N D
Characterizing Configuration Problems in Java EEApplication Servers: An Empirical Study withGlassFish and JBoss Fahad A. Arshad, Rebecca J. Krause, SaurabhBagchi Dependable Computing Systems Laboratory (DCSL) School of Electrical and Computer Engineering November 5th, 2013
Motivation • Configuring computers is not easy • Complexity • Configurations change • Finding root-cause of a configuration problem is harder "Unfortunately (and here's the human error), the URL of '/' was mistakenly checked in as a value to the file and '/' expands to all URLs." -Marissa Mayer Evaluating Configuration Robustness is Important
Overview • What ? • Characterized configuration problems in Java EE servers • Fault Injector for configuration bugs • Why ? • To improve the configuration resilience • How ? • Analyzed bug-reports • Mutated parameters in configuration files • Key Result • Bug Analysis: At-least 1/3rd problems are configuration-related • Fault Injector: Varying degree of non-silent manifestations
Outline • Java EE Server Overview • Classification Methodology • Fault-Injector • Discussion and Conclusion
Java EE Server Overview App A App B Java EE Server Deployment Module CLI DB JDBC Connector Admin Resources Web Browser Admin GUI
Classification of Configuration Problems JBAS-1115: “missing a "/" in one spot and has a double slash "//" in another spot.” Fix: if(schemaLocation.charAt(0) !='/') schemaLocation = '/'+schemaLocation; whose fault?
Bug-report Characteristics (281 Bugs analyzed) • Study-1 • Sampling-based (124 bugs) • Longer-span (multi-vers) • Study-2 • Keyword-based (157 bugs) • Shorter-span (specific-vers) Keywords Help
Study-1 Results (Sampling-based) GlassFish JBoss
Study-2 Results (Keyword-based) GlassFish JBoss
Common Patterns Learned • Parameter-based problems occur in majority • Majority of configuration problems show-up at runtime • will directly affect users • Majority of manifestations are non-silent • still need to make the minor silent problems non-silent • Developers have a greater responsibility
Outline • Java EE Server Overview • Classification Methodology • Fault-Injector • Discussion and Conclusion
Inject while emulating normal server-management workflow ConfGuage: Fault-Injector
ConfGuage: Fault-Injector • What to inject ? • Single character at a time, e.g., “/”, “ ” • Where to inject ? • GlassFish, JBoss, SPECjEnterprise2010 • XML attribute values in files (domain.xml, web.xml, persistence.xml) • When to inject ? • Boot-time • How to inject ? • Parse XML file • Inject based on a mutation-operators (Add, Remove, Replace) • Automate workflow(start, deploy, stop) using CARGO API
Frequency Distribution of Exceptions in domain.xml • NullPointerExceptiondue to injection in attributes • <pool-name>=“jms/value” to “jms//value” • <connector-connection-pool>=“jms/value” to “jms//value”
Fault-Injection Results: Non-silent manifestations Not all servers have equal configuration robustness
Discussion • Observations • Inter vs Intra version configuration problems • Impact of code-refactoring/re-implementation • Silent manifestations (GF:35%), require more-intrusive checks • Recommendations • Automated fixing of parameter-values • Bug-repository maintenance • Duplicate-bug detection • Cross-referencing with Fixes
Related Work • Failure Characterization [Zhou et al, SOSP 2011] • Bug-report analysis • Fault-Injection [G. Candea et al, DSN 2008] • ConfErr • Others • Auto-mated debugging of configuration problems • Autobash [Flinn et al, SOSP 2007] • Confdiagnoser[Zhang et al, ICSE 2013]
Conclusions • Failure Characterization of Java EE Application Servers • Four studied-dimensions • Type, Time, Manifestation, Culprit • Fault-Injection • Parameter-based • Boot-time • Lessons learned • Configuration robustness varies from server-to-server • Not all problems are non-silent • Parameter-based issues occur most frequently and therefore require more attention
Thank you Questions ?
Bug-Characterization: Threats to Validity • Sample-size • Analyzing bugs is a manual-process, can be subjective • Quality of bugs-repository