instrument P2P --debug with connection and thread info

For debugging http://git-annex.branchable.com/bugs/annex_get_-J_16_via_ssh_stalls_/

This work is supported by the NIH-funded NICEMAN (ReproNim TR&D3) project.
This commit is contained in:
Joey Hess 2018-10-22 15:52:11 -04:00
parent 1cfd2c2b96
commit fcca7adaff
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
4 changed files with 26 additions and 5 deletions

View file

@ -29,6 +29,7 @@ import qualified P2P.Annex as P2P
import Control.Concurrent.STM
import Control.Concurrent.Async
import qualified Data.ByteString as B
import Data.Unique
toRepo :: ConsumeStdin -> Git.Repo -> RemoteGitConfig -> SshCommand -> Annex (FilePath, [CommandParam])
toRepo cs r gc remotecmd = do
@ -257,11 +258,16 @@ openP2PSshConnection r connpool = do
, std_out = CreatePipe
, std_err = CreatePipe
}
-- Could use getPid, but need to build with older versions
-- of process, so instead a unique connection number.
connnum <- hashUnique <$> newUnique
let conn = P2P.P2PConnection
{ P2P.connRepo = repo
, P2P.connCheckAuth = const False
, P2P.connIhdl = to
, P2P.connOhdl = from
, P2P.connIdent = P2P.ConnIdent $
Just $ "ssh connection " ++ show connnum
}
stderrhandlerst <- newStderrHandler err
runst <- P2P.mkRunState P2P.Client