Download Automatically Generating Predicates and Solutions for
Transcript
or network communication, are not handled by our shell because it does not have the ability to track external components’ output. Also, one can imagine a precondition command executed before our troubleshooting shell is launched; our shell will not find that precondition as it limits dependency tracking to the period in which it is running. 8 Conclusion Predicates play an important role for automated configuration management tools such as AutoBash and Chronus. However, writing predicates by hand is tedious, time-consuming, and requires expert knowledge. This work solves the problem of manually writing predicates by automatically inferring predicates and solutions from traces of users fixing configuration problems. Acknowledgments We thank our shepherd, Yinglian Xie, and the anonymous reviewers for valuable feedback on this paper, as well as our user study participants. The work has been supported by the National Science Foundation under award CNS-0509093. Jason Flinn is supported by NSF CAREER award CNS-0346686. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of NSF, the University of Michigan, or the U.S. government. References [1] ATTARIYAN , M., AND F LINN , J. Using causality to diagnose configuration bugs. In Proceedings of the USENIX Annual Technical Conference (Boston, MA, June 2008), pp. 171–177. [2] B EREITER , S., AND M ILLER , S. Troubleshooting and Human Factors in Automated Manufacturing Systems. Noyes Publications, March 1989. [3] B OYAPATI , C., K HURSHID , S., AND M ARINOV, D. Korat: Automated testing based on Java predicates. In Proceedings of ACM International Symposium on Software Testing and Analysis ISSTA 2002 (2002). [4] C HOW, T. S. Testing software design modeled by finite-state machines. IEEE Transactions on Software Engineering 4, 3 (1978), 178–187. [5] C OMPUTING R ESEARCH A SSOCIATION. Final report of the CRA conference on grand research challenges in information systems. Tech. rep., September 2003. [6] D ALAL , S. R., JAIN , A., K ARUNANITHI , N., L EATON , J. M., L OTT, C. M., PATTON , G. C., AND H OROWITZ , B. M. Modelbased testing in practice. In Proceedings of the 21st International Conference on Software Engineering (ICSE’99) (Los Angeles, California, May 1999). [7] E NGLER , D., C HEN , D. Y., H ALLEM , S., C HOU , A., AND C HELF, B. Bugs as deviant behavior: A general approach to inferring errors in systems code. In Proceedings of the 18th ACM Symposium on Operating Systems Principles (Banff, Canada, October 2001), pp. 57–72. [8] G ODEFROID , P., K LARLUND , N., AND S EN , K. DART: Directed automated random testing. In ACM SIGPLAN 2005 Conference on Programming Language Design and Implementation (PLDI’05) (2005), pp. 213–223. [9] H A , J., ROSSBACH , C. J., D AVIS , J. V., ROY, I., R AMADAN , H. E., P ORTER , D. E., C HEN , D. L., AND W ITCHEL , E. Improved error reporting for software that uses black-box components. In Proceedings of the Conference on Programming Language Design and Implementation 2007 (San Diego, CA, 2007). [10] H AREL , D. Statecharts: A visual formalism for complex systems. Science of Computer Programming 8, 3 (1987), 231–274. [11] J ULA , H., T RALAMAZZA , D., Z AMFIR , C., AND C ANDEA , G. Deadlock immunity: Enabling systems to defend against deadlocks. In Proceedings of the 8th Symposium on Operating Systems Design and Implementation (San Diego, CA, December 2008). [12] K APOOR , A. Web-to-host: Reducing total cost of ownership. Tech. Rep. 200503, The Tolly Group, May 2000. [13] M ARINOV, D., AND K HURSHID , S. Testera: A novel framework for automated testing of Java programs. In Proceedings of the 16th IEEE International Conference on Automated Software Engineering (ASE) (San Diego, CA, November 2001). [14] M EMON , A. M., P OLLACK , M. E., AND S OFFA , M. L. Automated test oracles for GUIs. In Proceedings of the 8th ACM SIGSOFT International Symposium on Foundations of Software Engineering (New York, NY, 2000), pp. 30–39. [15] M ICKENS , J., S ZUMMER , M., AND N ARAYANAN , D. Snitch: Interactive decision trees for troubleshooting misconfigurations. In In Proceedings of the 2007 Workshop on Tackling Computer Systems Problems with Machine Learning Techniques (Cambridge, MA, April 2007). [16] N AGARAJA , K., O LIVERIA , F., B IANCHINI , R., M ARTIN , R., AND N GUYEN , T. Understanding and dealing with operator mistakes in Internet services. In Proceedings of the 6th Symposium on Operating Systems Design and Implementation (San Francisco, CA, December 2004), pp. 61–76. [17] N IGHTINGALE , E. B., C HEN , P. M., AND F LINN , J. Speculative execution in a distributed file system. In Proceedings of the 20th ACM Symposium on Operating Systems Principles (Brighton, United Kingdom, October 2005), pp. 191–205. [18] O FFUTT, J., AND A BDURAZIK , A. Generating tests from uml specifications. In Second International Conference on the Unified Modeling Language (UML99) (Ocrober 1999). [19] R ICHARDSON , D. J. TAOS: Testing with analysis and oracle support. In Proceedings of the 1994 International Symposium on Software Testing and Analysis (ISSTA) (Seattle, WA, 94), pp. 138–153. [20] R ICHARDSON , D. J., A HA , S. L., AND O’M ALLEY, T. O. Specification-based test oracles for reactive systems. In Proceedings of the 14th international conference on Software engineering (Melbourne, Australia, 1992), pp. 105–118. [21] S U , Y.-Y., ATTARIYAN , M., AND F LINN , J. AutoBash: Improving configuration management with operating system causality analysis. In Proceedings of the 21st ACM Symposium on Operating Systems Principles (Stevenson, WA, October 2007), pp. 237– 250. [22] WANG , H. J., P LATT, J. C., C HEN , Y., Z HANG , R., AND WANG , Y.-M. Automatic misconfiguration troubleshooting with PeerPressure. In Proceedings of the 6th Symposium on Operating Systems Design and Implementation (San Francisco, CA, December 2004), pp. 245–257. [23] WANG , Y.-M., V ERBOWSKI , C., D UNAGAN , J., C HEN , Y., WANG , H. J., Y UAN , C., AND Z HANG , Z. STRIDER: A blackbox, state-based approach to change and configuration management and support. In Proceedings of the USENIX Large Installation Systems Administration Conference (October 2003), pp. 159–172. [24] W HITAKER , A., C OX , R. S., AND G RIBBLE , S. D. Configuration debugging as search: Finding the needle in the haystack. In Proceedings of the 6th Symposium on Operating Systems Design and Implementation (San Francisco, CA, December 2004), pp. 77–90.