Skip to main content
Top

2018 | OriginalPaper | Chapter

Dl-Check: Dynamic Potential Deadlock Detection Tool for Java Programs

Authors : Nikita Koval, Dmitry Tsitelov, Roman Elizarov

Published in: Tools and Methods of Program Analysis

Publisher: Springer International Publishing

Activate our intelligent search to find suitable subject content or patents.

search-config
loading …

Abstract

Deadlocks are one of the main problems in multithreaded programming. This paper presents a novel approach to detecting potential deadlocks at run-time. As opposed to many dynamic methods based on analyzing execution traces, it detects a potential deadlock immediately at the point of the lock hierarchy violation which happens first during execution, so all the run-time context is available at the point of detection. The approach is based on the target program instrumentation to capture lock acquisition and release operations. An acyclic lock-order graph is maintained incrementally, so cycles are detected during graph maintenance. The presented algorithm is based on topological order maintenance and uses various heuristics and concurrent data structures which improve performance and scalability. Experimental results show that Dl-Check is efficient for large-scale multithreaded applications.

Dont have a licence yet? Then find out more about our products and how to get one now:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Literature
1.
go back to reference Sutter, H.: The free lunch is over: a fundamental turn toward concurrency in software. Dr. Dobb’s J. 30(3), 202–210 (2005) Sutter, H.: The free lunch is over: a fundamental turn toward concurrency in software. Dr. Dobb’s J. 30(3), 202–210 (2005)
2.
go back to reference Knapp, E.: Deadlock detection in distributed databases. ACM Comput. Surv. 19(4), 303–328 (1987)CrossRef Knapp, E.: Deadlock detection in distributed databases. ACM Comput. Surv. 19(4), 303–328 (1987)CrossRef
3.
go back to reference Singhal, M.: Deadlock detection in distributed systems (1989) Singhal, M.: Deadlock detection in distributed systems (1989)
4.
go back to reference Da Luo, Z., Das, R., Qi, Y.: MulticoreSDK: a practical and efficient deadlock detector for real-world applications. In: Proceedings - 4th IEEE International Conference on Software Testing, Verification, and Validation, ICST 2011, pp. 309–318 (2011) Da Luo, Z., Das, R., Qi, Y.: MulticoreSDK: a practical and efficient deadlock detector for real-world applications. In: Proceedings - 4th IEEE International Conference on Software Testing, Verification, and Validation, ICST 2011, pp. 309–318 (2011)
5.
go back to reference Artho, C., Biere, A.: Applying static analysis to large-scale, multi-threaded Java programs. In: Proceedings of the Australian Software Engineering Conference, ASWEC, pp. 68–75, January 2001 Artho, C., Biere, A.: Applying static analysis to large-scale, multi-threaded Java programs. In: Proceedings of the Australian Software Engineering Conference, ASWEC, pp. 68–75, January 2001
8.
go back to reference Naik, M., Park, C.-S., Sen, K., Gay, D.: Effective static deadlock detection. In: Proceedings of the 31st International Conference on Software Engineering Naik, M., Park, C.-S., Sen, K., Gay, D.: Effective static deadlock detection. In: Proceedings of the 31st International Conference on Software Engineering
12.
go back to reference Cai, Y., Wu, S., Chan, W.K.: ConLock: a constraint-based approach to dynamic checking on deadlocks in multithreaded programs. In: Proceedings of the 36th International Conference on Software Engineering - ICSE 2014, pp. 491–502 (2014) Cai, Y., Wu, S., Chan, W.K.: ConLock: a constraint-based approach to dynamic checking on deadlocks in multithreaded programs. In: Proceedings of the 36th International Conference on Software Engineering - ICSE 2014, pp. 491–502 (2014)
14.
go back to reference Agarwal, R., Bensalem, S., Farchi, E., Havelund, K., Nir-Buchbinder, Y., Stoller, S.D., Ur, S., Wang, L.: Detection of deadlock potentials in multithreaded programs. IBM J. Res. Dev. 54(5), 3:1–3:15 (2010) Agarwal, R., Bensalem, S., Farchi, E., Havelund, K., Nir-Buchbinder, Y., Stoller, S.D., Ur, S., Wang, L.: Detection of deadlock potentials in multithreaded programs. IBM J. Res. Dev. 54(5), 3:1–3:15 (2010)
17.
go back to reference Herlihy, M.: The art of multiprocessor programming (2006) Herlihy, M.: The art of multiprocessor programming (2006)
18.
go back to reference Meisel, J.: Multithreaded programming. EE Eval. Eng. 46(12), 12–17 (2007) Meisel, J.: Multithreaded programming. EE Eval. Eng. 46(12), 12–17 (2007)
19.
go back to reference Marchetti-Spaccamela, A., Nanni, U., Rohnert, H.: Maintaining a topological order under edge insertions. Inf. Process. Lett. 59(1), 53–58 (1996)MathSciNetCrossRefMATH Marchetti-Spaccamela, A., Nanni, U., Rohnert, H.: Maintaining a topological order under edge insertions. Inf. Process. Lett. 59(1), 53–58 (1996)MathSciNetCrossRefMATH
20.
go back to reference Pearce, D.J., Kelly, P.H.J.: A batch algorithm for maintaining a topological order. In: Conferences in Research and Practice in Information Technology Series, vol. 102(1), pp. 79–87 (2010) Pearce, D.J., Kelly, P.H.J.: A batch algorithm for maintaining a topological order. In: Conferences in Research and Practice in Information Technology Series, vol. 102(1), pp. 79–87 (2010)
21.
go back to reference Cormen, T.H.: Introduction to Algorithms. MIT Press, Cambridge (2009)MATH Cormen, T.H.: Introduction to Algorithms. MIT Press, Cambridge (2009)MATH
25.
go back to reference Chan, W.K.: Magiclock: scalable detection of potential deadlocks in large-scale multithreaded programs. IEEE Trans. Softw. Eng. 40(3), 266–281 (2014)CrossRef Chan, W.K.: Magiclock: scalable detection of potential deadlocks in large-scale multithreaded programs. IEEE Trans. Softw. Eng. 40(3), 266–281 (2014)CrossRef
28.
go back to reference Kuleshov, E.: Using the ASM framework to implement common Java bytecode transformation patterns. Aspect-Oriented Software Development (2007) Kuleshov, E.: Using the ASM framework to implement common Java bytecode transformation patterns. Aspect-Oriented Software Development (2007)
29.
go back to reference Monson, L.: Caching & weakreferences. JAVA Dev. J. 3(8), 32–36 (1998) Monson, L.: Caching & weakreferences. JAVA Dev. J. 3(8), 32–36 (1998)
Metadata
Title
Dl-Check: Dynamic Potential Deadlock Detection Tool for Java Programs
Authors
Nikita Koval
Dmitry Tsitelov
Roman Elizarov
Copyright Year
2018
DOI
https://doi.org/10.1007/978-3-319-71734-0_6

Premium Partner