1 / 23

Fahad A. Arshad , Rebecca J. Krause , Saurabh Bagchi

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.

jadon
Download Presentation

Fahad A. Arshad , Rebecca J. Krause , Saurabh Bagchi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. Outline • Java EE Server Overview • Classification Methodology • Fault-Injector • Discussion and Conclusion

  5. Java EE Server Overview App A App B Java EE Server Deployment Module CLI DB JDBC Connector Admin Resources Web Browser Admin GUI

  6. 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?

  7. 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

  8. Study-1 Results (Sampling-based) GlassFish JBoss

  9. Study-2 Results (Keyword-based) GlassFish JBoss

  10. 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

  11. Outline • Java EE Server Overview • Classification Methodology • Fault-Injector • Discussion and Conclusion

  12. Inject while emulating normal server-management workflow ConfGuage: Fault-Injector

  13. 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

  14. ConfGuage: Fault-Injector Mutation Example

  15. 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”

  16. Fault-Injection Results: Non-silent manifestations Not all servers have equal configuration robustness

  17. 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

  18. 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]

  19. 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

  20. Thank you Questions ?

  21. Backup Slides

  22. Bug-Characterization: Threats to Validity • Sample-size • Analyzing bugs is a manual-process, can be subjective • Quality of bugs-repository

  23. Ticket Frequency

More Related