Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1639622.1639629acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

Forcing small models of conditions on program interleaving for detection of concurrent bugs

Published: 19 July 2009 Publication History

Abstract

Is it possible to efficiently reveal concurrency bugs by forcing a well selected set of conditions on program interleaving? To study this general question, we defined two simple models of conditions on program interleaving targeted at the insufficient-synchronization-scope bug pattern. We analyzed these models with respect to several buggy programs. We also implemented an algorithm that tries to force one of these models. The analysis of these models shows that relatively small models can detect insufficient-synchronization-scope bugs. The experiments with the forcing algorithm demonstrated the ability of finding the bug with high efficiency: the average testing time till the bug is detected was improved by factors of 7 and 73 compared with the average time required by a dynamic exploration that did not incorporate the forcing algorithm.

References

[1]
Sterling, N., 1993. Warlock: A static data race analysis tool. In: Proceedings of the USENIX Winter Technical Conference, 1993, 97--106.
[2]
Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., and Anderson T., 1997. Eraser: A dynamic data race detector for multithreaded programs. ACM TOCS, 1997.
[3]
von Praun, C., and Gross, T., 2001. Object race detection. In: Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages and Applications, 2001, 70--82.
[4]
Flanagan, C., Leino, K. R. M., Lillibridge, M., Nelson, G., Saxe, J. B., and Stata, R., 2002. Extended static checking for Java. In: Proceedings of the ACM Conference on Programming Language Design and Implementation, 2002, 234--245.
[5]
Choi, J. D., Lee, K., Loginov, A., O'Callahan, R., Sarkar, V., and Sridhara, M., 2002. Efficient and precise data race detection for multithreaded object oriented programs. In: Proceedings of the ACM Conference on Programming Language Design and Implementation, 2002, 258--269.
[6]
O'Callahan, R., and Choi, J. D., 2003. Hybrid dynamic data race detection, In: ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2003, 167--178.
[7]
Pozniansky, E., and Schuster A., 2003. Efficient on-the-fly data race detection in multithreaded C++ programs. In: Proceedings of the ACM Symposium on Principles and Practice of Parallel Programming, 2003, 179--190.
[8]
Flanagan, C., and Freund, S. N., 2008. Atomizer: A dynamic atomicity checker for multithreaded programs. Science of Computer Programming 71 (2008) 89--109.
[9]
Havelund, K., 2000. Using runtime analysis to guide model checking of Java programs. In SPIN (2000) 245--264.
[10]
Artho, C., Biere, A., 2001. Applying static analysis to largescale, multi-threaded Java programs. In ASWEC (2001) 68--75.
[11]
Engler, D., Ashcraft, K., 2003. RacerX: Effective, static detection of race conditions and deadlocks. In SOSP (2003) 237--252.
[12]
Chaki, S., Clarke, E., Ouaknine, J., and Sharygina, N, 2004. Automated, compositional and iterative deadlock detection. In MEMOCODE (2004) 201--210.
[13]
Williams A., Thies W., and Ernst M. D., 2005. Static deadlock detection for Java libraries. In ECOOP 2005: Object-Oriented Programming, 19th European Conference.
[14]
Edelstein, O., Farchi E., Nir Y., Ratsaby G., and Ur S., 2002. Multithreaded Java program test generation. IBM Systems Journal, 41(1):111--125.
[15]
Musuvathi, M., Qadeer, S., Ball, T., Basler, G., Nainar, P. A., Neamtiu, I., 2008. Finding and Reproducing Heisenbugs in Concurrent Programs. In Operating System Design and Implementation (OSDI), 2008, pages 267--280.
[16]
Chockler, H., Farchi, E., Godlin, B., and Novikov, S., 2007. Cross-entropy based testing. In Proceedings of Formal Methods in Computer Aided Design (FMCAD), pages 101--108. IEEE Computer Society, 2007.
[17]
Bensalem, S., Fernandez J. C., Havelund K., and Mounier L., 2006. Confirmation of deadlock potentials detected by runtime analysis. In PADTAD '06: Proceeding of the 2006 workshop on Parallel and distributed systems: testing and debugging.
[18]
Nir-Buchbinder, Y., Tzoref, R., and Ur, S., 2008. Deadlocks: from Exhibiting to Healing. In Proc. 8th Workshop on Runtime Verification.
[19]
Letko, Z., Vojnar, T., and Bohuslav, K., 2008. AtomRace: Data Race and Atomicity Violation Detector and Healer. In PADTAD '08: Proceeding of the 2008 workshop on Parallel and distributed systems: testing and debugging.
[20]
Bron, A., Farchi, E., Magid, Y., Nir, Y. and Ur, S., 2005. Applications of synchronization coverage. In PPoPP, 2005.
[21]
Lu, S., Park, S., Seo, E., and Zhou, Y., 2008. Learning from Mistakes -- A Comprehensive Study on Real World Concurrency Bug Characteristics. In ASPLOS XIII: Proceedings of the 13th international conference on Architectural support for programming languages and operating systems, pages 329--339, New York, NY, USA, 2008. ACM.
[22]
Choi J. D., and Srinivasan H., 1998. Deterministic replay of Java Multithreaded Applications. In Proceedings of the SIGMETRICS Symposium on Parallel and Distributed Tools, pp. 48--59, Welches, Oregon, 1998.

Cited By

View all
  • (2021)GoAT: Automated Concurrency Analysis and Debugging Tool for Go2021 IEEE International Symposium on Workload Characterization (IISWC)10.1109/IISWC53511.2021.00023(138-150)Online publication date: Nov-2021
  • (2020)Thread Scheduling Sequence Generation Based on All Synchronization Pair Coverage CriteriaInternational Journal of Software Engineering and Knowledge Engineering10.1142/S021819402050005930:01(97-118)Online publication date: 27-Feb-2020
  • (2018)A Survey of Recent Trends in Testing Concurrent Software SystemsIEEE Transactions on Software Engineering10.1109/TSE.2017.270708944:8(747-783)Online publication date: 1-Aug-2018
  • Show More Cited By

Index Terms

  1. Forcing small models of conditions on program interleaving for detection of concurrent bugs

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    PADTAD '09: Proceedings of the 7th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
    July 2009
    99 pages
    ISBN:9781605586557
    DOI:10.1145/1639622
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 19 July 2009

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. analysis
    2. concurrency bug patterns
    3. dynamic exploration
    4. forcing algorithm
    5. model of conditions on program interleaving

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    ISSTA '09

    Upcoming Conference

    ISSTA '25

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)3
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 09 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2021)GoAT: Automated Concurrency Analysis and Debugging Tool for Go2021 IEEE International Symposium on Workload Characterization (IISWC)10.1109/IISWC53511.2021.00023(138-150)Online publication date: Nov-2021
    • (2020)Thread Scheduling Sequence Generation Based on All Synchronization Pair Coverage CriteriaInternational Journal of Software Engineering and Knowledge Engineering10.1142/S021819402050005930:01(97-118)Online publication date: 27-Feb-2020
    • (2018)A Survey of Recent Trends in Testing Concurrent Software SystemsIEEE Transactions on Software Engineering10.1109/TSE.2017.270708944:8(747-783)Online publication date: 1-Aug-2018
    • (2018)Prediction of Coverage of Expensive Concurrency Metrics Using Cheaper MetricsComputer Aided Systems Theory – EUROCAST 201710.1007/978-3-319-74727-9_12(99-108)Online publication date: 26-Jan-2018
    • (2017)10 Years of research on debugging concurrent and multicore softwareSoftware Quality Journal10.1007/s11219-015-9301-725:1(49-82)Online publication date: 1-Mar-2017
    • (2015)Advances in noise-based testing of concurrent softwareSoftware Testing, Verification & Reliability10.1002/stvr.154625:3(272-309)Online publication date: 1-May-2015
    • (2015)Are concurrency coverage metrics effective for testingSoftware Testing, Verification & Reliability10.1002/stvr.153925:4(334-370)Online publication date: 1-Jun-2015
    • (2014)Debugging and visualization techniques for multithreaded programs: A surveyInternational Conference on Recent Advances and Innovations in Engineering (ICRAIE-2014)10.1109/ICRAIE.2014.6909202(1-6)Online publication date: May-2014
    • (2013)The Impact of Concurrent Coverage Metrics on Testing EffectivenessProceedings of the 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation10.1109/ICST.2013.32(232-241)Online publication date: 18-Mar-2013
    • (2012)Noise-based testing and analysis of multi-threaded C/C++ programs on the binary levelProceedings of the 2012 Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging10.1145/2338967.2336813(36-46)Online publication date: 16-Jul-2012
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media