skip to main content
research-article

Light: replay via tightly bounded recording

Published:03 June 2015Publication History
Skip Abstract Section

Abstract

Reproducing concurrency bugs is a prominent challenge. Existing techniques either rely on recording very fine grained execution information and hence have high runtime overhead, or strive to log as little information as possible but provide no guarantee in reproducing a bug. We present Light, a technique that features much lower overhead compared to techniques based on fine grained recording, and that guarantees to reproduce concurrent bugs. We leverage and formally prove that recording flow dependences is the necessary and sufficient condition to reproduce a concurrent bug. The flow dependences, together with the thread local orders that can be automatically inferred (and hence not logged), are encoded as scheduling constraints. An SMT solver is used to derive a replay schedule, which is guaranteed to exist even though it may be different from the original schedule. Our experiments show that Light has only 44% logging overhead, almost one order of magnitude lower than the state of the art techniques relying on logging memory accesses. Its space overhead is only 10% of those techniques. Light can also reproduce all the bugs we have collected whereas existing techniques miss some of them.

References

  1. G. Altekar and I. Stoica. Odr: Output-deterministic replay for multicore debugging. In SOSP, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. S. M. Blackburn, R. Garner, C. Hoffmann, A. M. Khang, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanovi´c, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The dacapo benchmarks: Java benchmarking development and analysis. In OOPSLA, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. D. Bond and M. Kulkarni. Tracking conflicting accesses efficiently for software record and replay. Ohio State CSE Technical Report, OSU-CISRC-2/12-TR01, 2012.Google ScholarGoogle Scholar
  4. M. D. Bond, M. Kulkarni, M. Cao, M. Zhang, M. Fathi Salmi, S. Biswas, A. Sengupta, and J. Huang. Octet: Capturing and controlling cross-thread dependences efficiently. In OOPSLA, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. F. Chen and G. Ro¸su. Parametric and sliced causality. In CAV, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J.-D. Choi and H. Srinivasan. Deterministic replay of java multithreaded applications. In SPDT, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 60% 70% 80% 90% 100% 0% 10% 20% 30% 40% 50% O1 O2 Light (a) 60% 70% 80% 90% 100% 10% 20% 30% 40% 50% 60% O1 O2 Light 0% (b) Figure 7. (1) Breakdown of Time Overhead (2) Breakdown of Space OverheadGoogle ScholarGoogle Scholar
  8. T. ¸Serbănu¸tă, F. Chen, and G. Ro¸su. Maximal causal models for sequentially consistent systems. In Runtime Verification. 2013.Google ScholarGoogle ScholarCross RefCross Ref
  9. L. De Moura and N. Bjørner. Z3: An efficient smt solver. In TACAS, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. Devecsery, M. Chow, X. Dou, J. Flinn, and P. M. Chen. Eidetic systems. In OSDI, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. C. Flanagan and S. N. Freund. Fasttrack: Efficient and precise dynamic race detection. In PLDI, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. A. Georges, M. Christiaens, M. Ronsse, and K. De Bosschere. Jarec: A portable record/replay environment for multi-threaded java applications. Software Practice and Experience, 34(6), May 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. P. B. Gibbons and E. Korach. Testing shared memories. SIAM J. Comput., 26(4), Aug. 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. C. Hammer, J. Dolby, M. Vaziri, and F. Tip. Dynamic detection of atomic-set-serializability violations. In ICSE, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. Huang, P. Liu, and C. Zhang. LEAP: Lightweight deterministic multi-processor replay of concurrent java programs. In FSE, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. J. Huang, C. Zhang, and J. Dolby. CLAP: Recording Local Executions to Reproduce Concurrency Failures. In PLDI, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. Huang, P. O. Meredith, and G. Rosu. Maximal sound predictive race detection with control flow abstraction. In PLDI, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. V. Kahlon and C. Wang. Universal causality graphs: A precise happensbefore model for detecting bugs in concurrent programs. In CAV, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Z. Lai, S. C. Cheung, and W. K. Chan. Detecting atomic-set serializability violations in multithreaded programs through active randomized testing. In ICSE, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. T. J. LeBlanc and J. M. Mellor-Crummey. Debugging parallel programs with instant replay. IEEE Trans. Comput., 36(4), Apr. 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. D. Lee, M. Said, S. Narayanasamy, Z. Yang, and C. Pereira. Offline symbolic analysis for multi-processor execution replay. In MICRO, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. D. Lee, P. M. Chen, J. Flinn, and S. Narayanasamy. Chimera: Hybrid program analysis for determinism. In PLDI, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. K. H. Lee, D. Kim, and X. Zhang. Infrastructure-free logging and replay of concurrent execution on multiple cores. In PPoPP, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. P. Liu and C. Zhang. Pert: The application-aware tailoring of java object persistence. TSE, 38(4), July 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. P. Liu, O. Tripp, and C. Zhang. Grail: Context-aware fixing of concurrency bugs. FSE, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. C. C. Minh, J. Chung, C. Kozyrakis, and K. Olukotun. Stamp: Stanford transactional applications for multi-processing. In IEEE International Symposium on Workload Characterization, 2008.Google ScholarGoogle Scholar
  27. M. Naik and A. Aiken. Conditional must not aliasing for static race detection. In POPL, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. S. Owicki and D. Gries. Verifying properties of parallel programs: An axiomatic approach. Commun. ACM, 19(5), May 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. S. Park, Y. Zhou, W. Xiong, Z. Yin, R. Kaushik, K. H. Lee, and S. Lu. Pres: Probabilistic replay with execution sketching on multiprocessors. In SOSP, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. H. Patil, C. Pereira, M. Stallcup, G. Lueck, and J. Cownie. Pinplay: A framework for deterministic replay and reproducible analysis of parallel programs. In CGO, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. M. Ronsse and K. De Bosschere. Recplay: A fully integrated practical record/replay system. ACM Trans. Comput. Syst., 17(2), May 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. K. Sen, G. Ro¸su, and G. Agha. Detecting errors in multithreaded programs by generalized predictive analysis of executions. In FMOODS, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. L. A. Smith, J. M. Bull, and J. Obdrzálek. A parallel java grande benchmark suite. In Proceedings of the 2001 ACM/IEEE Conference on Supercomputing, SC, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. O. Tripp. Incorporating Data Abstractions into Concurrency Control. PhD thesis, Tel-Aviv University, 2014.Google ScholarGoogle Scholar
  35. O. Tripp, G. Yorsh, J. Field, and M. Sagiv. Hawkeye: Effective discovery of dataflow impediments to parallelization. In OOPSLA, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. R. Vallée-Rai, P. Co, E. Gagnon, L. Hendren, P. Lam, and V. Sundaresan. Soot - a java bytecode optimization framework. In CASCON, 1999.Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. K. Veeraraghavan, D. Lee, B. Wester, J. Ouyang, P. M. Chen, J. Flinn, and S. Narayanasamy. Doubleplay: Parallelizing sequential logging and replay. In ASPLOS XVI, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. D. Weeratunge, X. Zhang, and S. Jagannathan. Analyzing multicore dumps to facilitate concurrency bug reproduction. In ASPLOS XV, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Yices. The yices smt solver. http://yices.csl.sri.com/.Google ScholarGoogle Scholar
  40. C. Zamfir and G. Candea. Execution synthesis: A technique for automated software debugging. In EuroSys, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. J. Zhou, X. Xiao, and C. Zhang. Stride: Search-based deterministic replay in polynomial time via bounded linkage. In ICSE, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Light: replay via tightly bounded recording

    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

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 50, Issue 6
      PLDI '15
      June 2015
      630 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/2813885
      • Editor:
      • Andy Gill
      Issue’s Table of Contents
      • cover image ACM Conferences
        PLDI '15: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation
        June 2015
        630 pages
        ISBN:9781450334686
        DOI:10.1145/2737924

      Copyright © 2015 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 3 June 2015

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!