• DocumentCode
    1851381
  • Title

    Symbolic Deadlock Analysis in Concurrent Libraries and Their Clients

  • Author

    Deshmukh, Jyotirmoy ; Emerson, E. Allen ; Sankaranarayanan, Sriram

  • Author_Institution
    Univ. of Texas at Austin, Austin, TX, USA
  • fYear
    2009
  • fDate
    16-20 Nov. 2009
  • Firstpage
    480
  • Lastpage
    491
  • Abstract
    Methods in object-oriented concurrent libraries hide internal synchronization details. However, information hiding may result in clients causing thread safety violations by invoking methods in an unsafe manner. Given such a library, we present a technique for inferring interface contracts that specify permissible concurrent method calls and patterns of aliasing among method arguments, such that the derived contracts guarantee deadlock free execution for the methods in the library. The contracts also help client developers by documenting required assumptions about the library methods. Alternatively, the contracts can be statically enforced in the client code to detect potential deadlocks in the client. Our technique combines static analysis with a symbolic encoding for tracking lock dependencies, allowing us to synthesize contracts using a SMT solver. Our prototype tool analyzes over a million lines of code for some widely-used Java libraries within an hour, thus demonstrating its scalability and efficiency. Furthermore, the contracts inferred by our approach have been able to pinpoint real deadlocks in clients, i.e. deadlocks that have been a part of bug-reports filed by users and developers of the client code.
  • Keywords
    concurrency control; object-oriented programming; program diagnostics; software libraries; synchronisation; system recovery; Java libraries; aliasing patterns; deadlock free execution; information hiding; interface contracts; internal synchronization details; lock dependencies; object-oriented concurrent libraries; permissible concurrent method calls; static analysis; symbolic deadlock analysis; symbolic encoding; Contracts; Encoding; Java; Libraries; Prototypes; Safety; Scalability; Surface-mount technology; System recovery; Yarn; Concurrent Libraries; Deadlock Detection; Program Analysis; SMT solvers; Static Analysis;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Automated Software Engineering, 2009. ASE '09. 24th IEEE/ACM International Conference on
  • Conference_Location
    Auckland
  • ISSN
    1938-4300
  • Print_ISBN
    978-1-4244-5259-0
  • Electronic_ISBN
    1938-4300
  • Type

    conf

  • DOI
    10.1109/ASE.2009.14
  • Filename
    5431749