skip to main content
10.1145/1791212.1791234acmconferencesArticle/Chapter ViewAbstractPublication PagescpsweekConference Proceedingsconference-collections
research-article

T-check: bug finding for sensor networks

Published:12 April 2010Publication History

ABSTRACT

Sensor nodes are resource poor and failure-prone. Sensor networks are composed of many such nodes that are often hard to physically reach and that are connected by unreliable wireless links. Together, these factors make sensor network debugging into a challenging activity, and in fact it is not uncommon for a deployed sensornet to encounter sporadic faults that are effectively impossible to locate, reproduce, and fix.

We developed T-Check, a tool that uses random walks and explicit state model checking to find safety and liveness errors in sensor network applications running on TinyOS. By building upon TOSSIM---an event-driven simulator that abstracts away interrupt-driven concurrency and other low-level hardware interaction---T-Check loses the ability to detect certain low-level errors, but gains enough scalability to detect distributed errors such as a collection tree protocol's failure to properly repair when a node dies. We have used T-Check to find previously unknown bugs in TinyOS.

References

  1. Will Archer, Philip Levis, and John Regehr. Interface contracts for TinyOS. In Proc. of the Intl. Conf. on Information Processing in Sensor Networks (IPSN'07), SPOTS Track, Cambridge, MA, April 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Thomas Ball and Sriram K. Rajamani. The SLAM project: Debugging system software via static analysis. In Proc. of the 29th ACM Symp. on Principles of Programming Languages (POPL), Portland, OR, USA, January 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Dirk Beyer, Thomas A. Henzinger, Ranjit Jhala, and Rupak Majumdar. The software model checker Blast: Applications to software engineering. Intl. Journal on Software Tools for Technology Transfer, 9(5--6), October 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Qing Cao, Tarek Abdelzaher, John Stankovic, Kamin Whitehouse, and Liqian Luo. Declarative tracepoints: A programmable and application independent debugging system for wireless sensor networks. In Proc. of the 6th ACM Conf. on Embedded Networked Sensor Systems (SenSys), Raleigh, NC, USA, November 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. E. M. Clarke, E. A. Emerson, and A. P. Sistla. Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Transactions on Programming Languages and Systems (TOPLAS), 8:244--263, April 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Jeremy Condit, Matthew Harren, Zachary Anderson, David Gay, and George C. Necula. Dependent types for low-level programming. In Proc. of the 16th European Symp. on Programming (ESOP), Braga, Portugal, March--April 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Nathan Cooprider, William Archer, Eric Eide, David Gay, and John Regehr. Efficient memory safety for TinyOS. In Proc. of the 5th ACM Conf. on Embedded Networked Sensor Systems (SenSys), pages 205--218, Sydney, Australia, November 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. David Gay, Phil Levis, Robert von Behren, Matt Welsh, Eric Brewer, and David Culler. The nesC language: A holistic approach to networked embedded systems. In Proc. of the ACM SIGPLAN 2003 Conf. on Programming Language Design and Implementation (PLDI), pages 1--11, San Diego, CA, June 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Omprakash Gnawali, Rodrigo Fonseca, Kyle Jamieson, David Moss, and Philip Levis. Collection tree protocol. In Proc. of the 7th ACM Conference on Embedded Networked Sensor Systems (SenSys), Berkeley, CA, USA, November 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Patrice Godefroid. Model checking for programming languages using Verisoft. In Proc. of the Symp. on Principles of Programming Languages, pages 174--186, Nice, France, January 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Ben Greenstein and Philip Levis. TinyOS Extension Proposal (TEP) 113: Serial Communication, 2006. http://www.tinyos.net/tinyos-2.x/doc/html/tep113.html.Google ScholarGoogle Scholar
  12. Alex Groce and Rajeev Joshi. Random testing and model checking: Building a common framework for nondeterministic exploration. In Proc. of the 6th Intl. Workshop on Dynamic Analysis (WODA), Seattle, WA, USA, July 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Lin Gu and John A. Stankovic. t-kernel: Providing reliable OS support to wireless sensor networks. In Proc. of the 4th ACM Conf. on Embedded Networked Sensor Systems (SenSys), Boulder, CO, November 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Klaus Havelund and Thomas Pressburger. Model checking Java programs using Java PathFinder. Intl. Journal on Software Tools for Technology Transfer, 2(4), March 2000.Google ScholarGoogle Scholar
  15. Jason Hill, Robert Szewczyk, Alec Woo, Seth Hollar, David Culler, and Kristofer Pister. System architecture directions for networked sensors. In Proc. of the 9th Intl. Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pages 93--104, Cambridge, MA, November 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Mohammad Maifi Khan, Tarek Abdelzaher, and Kamal Kant Gupta. Towards diagnostic simulation in sensor networks. In Proc. of the Intl. Conf. on Distributed Computing in Sensor Systems (DCOSS), Santorini Island, Greece, June 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Mohammad Maifi Khan, Hieu Khac Le, Hossein Ahmadi, Tarek F. Abdelzaher, and Jiawei Han. Dustminer: Troubleshooting interactive complexity bugs in sensor networks. In Proc. of the 6th ACM Conf. on Embedded Networked Sensor Systems (SenSys), Raleigh, NC, USA, November 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Charles Killian, James W. Anderson, Ranjit Jhala, and Amin Vahdat. Life, death, and the critical transition: Detecting liveness bugs in systems code. In Proc. of the 4th Symp. on Networked Systems Design and Implementation (NSDI), Cambridge, MA, April 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Nupur Kothari, Todd Millstein, and Ramesh Govindan. Deriving state machines from TinyOS programs using symbolic execution. In Proc. of the 7th Intl. Conf. on Information Processing in Sensor Networks (IPSN 2008), St. Louis, MO, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Veljko Krunic, Eric Trumpler, and Richard Han. NodeMD: Diagnosing node-level faults in remote wireless sensor systems. In Proc. of the 5th International Conference on Mobile Systems, Applications, and Services (Mobisys), San Juan, Puerto Rico, June 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Ram Kumar, Eddie Kohler, and Mani Srivastava. Harbor: software-based memory protection for sensor nodes. In Proc. of the 6th Intl. Conf. on Information Processing in Sensor Networks (IPSN07), Cambridge, MA, USA, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Philip Levis, Nelson Lee, Matt Welsh, and David Culler. TOSSIM: Accurate and scalable simulation of entire TinyOS applications. In Proc. of the 1st ACM Conf. on Embedded Networked Sensor Systems (SenSys), pages 126--137, Los Angeles, CA, November 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Kaisen Lin and Philip Levis. Data discovery and dissemination with DIP. In Proc. of the 7th Intl. Conf. on Information Processing in Sensor Networks (IPSN08), pages 433--444, St. Louis, MO, USA, April 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Liqian Luo, Tian He, Gang Zhou, Lin Gu, Tarek F. Abdelzaher, and John A. Stankovic. Achieving repeatability of asynchronous events in wireless sensor networks with EnviroLog. In Proc. of the 25th Conf. on Computer Communications (INFOCOM), Barcelona, Spain, April 2006.Google ScholarGoogle ScholarCross RefCross Ref
  25. Moteiv. Telos rev. B datasheet, 2005. http://www.moteiv.com.Google ScholarGoogle Scholar
  26. Nguyet T. M. Nguyen and Mary Lou Soffa. Program representations for testing wireless sensor network applications. In Proc. of the Workshop on Domain Specific Approaches to Software Test Automation (DoSTA'07), Dubrovnik, Croatia, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Raimondas Sasnauskas, Olaf Landsiedel, Muhammad Hamad Alizai, Carsten Weise, Stefan Kowalewski, and Klaus Wehrle. KleeNet: Discovering insidious interaction bugs in wireless sensor networks before deployment. In Proc. of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN), Stockholm, Sweden, April 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Bastian Schlich. Model Checking of Software for Microcontrollers. Dissertation, RWTH Aachen University, Aachen, Germany, June 2008.Google ScholarGoogle Scholar
  29. Geoff Werner-Allen, Konrad Lorincz, Jeff Johnson, Jonathan Lees, and Matt Welsh. Fidelity and yield in a volcano monitoring sensor network. In Proc. of the 7th USENIX Symp. on Operating Systems Design and Implementation (OSDI), Berkeley, CA, USA, November 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Andreas Zeller and Ralf Hildebrandt. Simplifying and isolating failure-inducing input. IEEE Transactions on Software Engineering, 28(2):183--200, February 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. T-check: bug finding for sensor networks

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image ACM Conferences
              IPSN '10: Proceedings of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks
              April 2010
              460 pages
              ISBN:9781605589886
              DOI:10.1145/1791212

              Copyright © 2010 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 12 April 2010

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

              Acceptance Rates

              Overall Acceptance Rate143of593submissions,24%

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader