add DebugLocks build flag

Using the method described in
https://www.fpcomplete.com/blog/2018/05/pinpointing-deadlocks-in-haskell
but my own code to implement it, and with callstacks added.

This work is supported by the NIH-funded NICEMAN (ReproNim TR&D3) project.
This commit is contained in:
Joey Hess 2018-11-19 15:00:24 -04:00
parent 953856df5f
commit 9127fe4821
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
13 changed files with 88 additions and 13 deletions

View file

@ -0,0 +1,20 @@
[[!comment format=mdwn
username="joey"
subject="""comment 21"""
date="2018-11-19T18:46:32Z"
content="""
I've added a DebugLocks build flag to try to track down the source
of the deadlock. It's not enabled by default, so you'll need to eg modify
the Makefile to set it:
cabal configure -fDebugLocks
Calls to `debugLocks` are scattered around in a several of the places I
suspect may be involved, around ssh prompting, transfer locks, and
general lock files. If one of them is, it will display line number
information when the deadlock happens.
It will probably take several iterations of adding more calls to
`debugLocks` to narrow in on the code that is involved in the
deadlock.
"""]]