Combining Static Analysis and Testing for Deadlock Detection

  • Elvira Albert
  • Miguel Gómez-Zamalloa
  • Miguel Isabel
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9681)


Static deadlock analyzers might be able to verify the absence of deadlock. However, they are usually not able to detect its presence. Also, when they detect a potential deadlock cycle, they provide little (or even no) information on their output. Due to the complex flow of concurrent programs, the user might not be able to find the source of the anomalous behaviour from the abstract information computed by static analysis. This paper proposes the combined use of static analysis and testing for effective deadlock detection in asynchronous programs. When the program features a deadlock, our combined use of analysis and testing provides an effective technique to catch deadlock traces. While if the program does not have deadlock, but the analyzer inaccurately spotted it, we might prove deadlock freedom.


Program Point Deadlock Detection Future Variable Abstract Cycle Location Identifier 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Abdulla, P., Aronis, S., Jonsson, B., Sagonas, K.F.: Optimal dynamic partial order reduction. In: Proceedings of POPL 2014, pp. 373–384. ACM (2014)Google Scholar
  2. 2.
    Agarwal, R., Wang, L., Stoller, S.D.: Detecting potential deadlocks with static analysis and run-time monitoring. In: Ur, S., Bin, E., Wolfsthal, Y. (eds.) HVC 2005. LNCS, vol. 3875, pp. 191–207. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  3. 3.
    Albert, E., Arenas, P., Gómez-Zamalloa, M.: Actor- and task-selection strategies for pruning redundant state-exploration in testing. In: Ábrahám, E., Palamidessi, C. (eds.) FORTE 2014. LNCS, vol. 8461, pp. 49–65. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  4. 4.
    Christakis, M., Gotovos, A., Sagonas, K.F.: Systematic testing for detecting concurrency errors in erlang programs. In: ICST 2013, pp. 154–163. IEEE (2013)Google Scholar
  5. 5.
    Flanagan, C., Godefroid, P.: Dynamic partial-order reduction for model checking software. In: Proceedings POPL 2005, pp. 110–121. ACM (2005)Google Scholar
  6. 6.
    Flores-Montoya, A.E., Albert, E., Genaim, S.: May-happen-in-parallel based deadlock analysis for concurrent objects. In: Beyer, D., Boreale, M. (eds.) FORTE 2013 and FMOODS 2013. LNCS, vol. 7892, pp. 273–288. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  7. 7.
    Giachino, E., Grazia, C.A., Laneve, C., Lienhardt, M., Wong, P.Y.H.: Deadlock analysis of concurrent objects: theory and practice. In: Johnsen, E.B., Petre, L. (eds.) IFM 2013. LNCS, vol. 7940, pp. 394–411. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  8. 8.
    Joshi, P., Naik, M., Sen, K., Gay, D.: An effective dynamic analysis for detecting generalized deadlocks. In: Proceedings of FSE 2010, pp. 327–336. ACM (2010)Google Scholar
  9. 9.
    Joshi, P., Park, C., Sen, K., Naik, M.: A randomized dynamic program analysis technique for detecting real deadlocks. In: Proceedings of PLDI 2009. ACM (2009)Google Scholar
  10. 10.
    Kheradmand, A., Kasikci, B., Candea, G.: Lockout: efficient testing for deadlock bugs. Technical report (2013)Google Scholar
  11. 11.
    Masticola, S.P., Ryder, B.G.: A model of ada programs for static deadlock detection in polynomial time. In: Parallel and Distributed Debugging. ACM (1991)Google Scholar
  12. 12.
    Naik, M., Park, C., Sen, K., Gay, D.: Effective static deadlock detection. In: Proceedings of ICSE, pp. 386–396. IEEE (2009)Google Scholar
  13. 13.
    Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., Anderson, T.E.: Eraser: a dynamic data race detector for multithreaded programs. ACM TCS 15(4), 391–411 (1997)CrossRefGoogle Scholar
  14. 14.
    Sen, K., Agha, G.: Automated systematic testing of open distributed programs. In: Baresi, L., Heckel, R. (eds.) FASE 2006. LNCS, vol. 3922, pp. 339–356. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  15. 15.
    Havelund, K.: Using runtime analysis to guide model checking of java programs. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, pp. 245–264. Springer, Heidelberg (2000)Google Scholar
  16. 16.
    Albert, E., Gómez-Zamalloa, M., et al.: Combining Static Analysis and Testing for Deadlock Detection. In: Ábrahám, E., Huisman, M. (eds.) IFM 2016. LNCS, vol. 9681, pp. 409–424. Springer, Heidelberg (2016).

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Elvira Albert
    • 1
  • Miguel Gómez-Zamalloa
    • 1
  • Miguel Isabel
    • 1
  1. 1.Complutense University of Madrid (UCM)MadridSpain

Personalised recommendations