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.