charmbracelet / git-lfs-transfer

Server-side implementation of the Git LFS pure-SSH protocol

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Multiple OTP prompts and upload hang

joooshf opened this issue · comments

When using pam-google-authenticator OTP and an authorized key, the user is prompted three times during the upload process.
The files then appear to transfer but the upload ultimately hangs at 100% without ever completing.

user@workstation:~/projects/repo$ GIT_TRACE=2 git push --set-upstream origin master
16:05:10.573101 git.c:460               trace: built-in: git push --set-upstream origin master
16:05:10.573289 run-command.c:655       trace: run_command: unset GIT_PREFIX; ssh server 'git-receive-pack '\''/home/git/repo.git'\'''
(user@server) Verification code: 
16:05:22.553113 run-command.c:655       trace: run_command: .git/hooks/pre-push origin ssh://server/home/git/repo.git
16:05:22.554493 git.c:750               trace: exec: git-lfs pre-push origin ssh://server/home/git/repo.git
16:05:22.554515 run-command.c:655       trace: run_command: git-lfs pre-push origin ssh://server/home/git/repo.git
16:05:22.556992 trace git-lfs: exec: git 'version'
16:05:22.557981 trace git-lfs: exec: git '-c' 'filter.lfs.smudge=' '-c' 'filter.lfs.clean=' '-c' 'filter.lfs.process=' '-c' 'filter.lfs.required=false' 'remote' '-v'
16:05:22.558960 trace git-lfs: exec: git '-c' 'filter.lfs.smudge=' '-c' 'filter.lfs.clean=' '-c' 'filter.lfs.process=' '-c' 'filter.lfs.required=false' 'remote'
16:05:22.559848 trace git-lfs: exec: git '-c' 'filter.lfs.smudge=' '-c' 'filter.lfs.clean=' '-c' 'filter.lfs.process=' '-c' 'filter.lfs.required=false' 'rev-parse' 'HEAD' '--symbolic-full-name' 'HEAD'
16:05:22.560701 trace git-lfs: exec: git '-c' 'filter.lfs.smudge=' '-c' 'filter.lfs.clean=' '-c' 'filter.lfs.process=' '-c' 'filter.lfs.required=false' 'rev-parse' '--git-dir' '--show-toplevel'
16:05:22.561518 trace git-lfs: exec: git 'config' '--includes' '-l'
16:05:22.562318 trace git-lfs: exec: git 'rev-parse' '--is-bare-repository'
16:05:22.563110 trace git-lfs: exec: git 'config' '--includes' '-l' '--blob' ':.lfsconfig'
16:05:22.564046 trace git-lfs: exec: git 'config' '--includes' '-l' '--blob' 'HEAD:.lfsconfig'
16:05:22.565110 trace git-lfs: attempting pure SSH protocol connection
16:05:22.565130 trace git-lfs: run_command: ssh -oControlMaster=auto -oControlPath=/run/user/1000/git-lfs/sock-%C server git-lfs-transfer /home/git/repo.git upload
16:05:22.565165 trace git-lfs: exec: ssh '-oControlMaster=auto' '-oControlPath=/run/user/1000/git-lfs/sock-%C' 'server' 'git-lfs-transfer /home/git/repo.git upload'
(user@server) Verification code: 
16:05:33.742355 trace git-lfs: pre-push: refs/heads/master 3e8740d72016fea16b8ceb032cce5a77b47b2356 refs/heads/master 0000000000000000000000000000000000000000
16:05:33.742414 trace git-lfs: exec: git '-c' 'filter.lfs.smudge=' '-c' 'filter.lfs.clean=' '-c' 'filter.lfs.process=' '-c' 'filter.lfs.required=false' 'show-ref'
16:05:33.743591 trace git-lfs: exec: git '-c' 'filter.lfs.smudge=' '-c' 'filter.lfs.clean=' '-c' 'filter.lfs.process=' '-c' 'filter.lfs.required=false' 'ls-remote' '--heads' '--tags' '-q' 'origin'
(user@server) Verification code: 
16:06:04.582142 trace git-lfs: attempting pure SSH protocol connection
16:06:04.582163 trace git-lfs: run_command: ssh -oControlMaster=auto -oControlPath=/run/user/1000/git-lfs/sock-%C server git-lfs-transfer /home/git/repo.git upload
16:06:04.582204 trace git-lfs: exec: ssh '-oControlMaster=auto' '-oControlPath=/run/user/1000/git-lfs/sock-%C' 'server' 'git-lfs-transfer /home/git/repo.git upload'
16:06:04.598686 trace git-lfs: tq: running as batched queue, batch size of 100
16:06:04.598781 trace git-lfs: run_command: git rev-list --objects --ignore-missing --not --remotes=origin --stdin --
16:06:04.598788 trace git-lfs: exec: git '-c' 'filter.lfs.smudge=' '-c' 'filter.lfs.clean=' '-c' 'filter.lfs.process=' '-c' 'filter.lfs.required=false' 'rev-list' '--objects' '--ignore-missing' '--not' '--remotes=origin' '--stdin' '--'
16:06:04.599056 trace git-lfs: exec: git '-c' 'filter.lfs.smudge=' '-c' 'filter.lfs.clean=' '-c' 'filter.lfs.process=' '-c' 'filter.lfs.required=false' 'cat-file' '--batch-check'
16:06:04.599268 trace git-lfs: exec: git '-c' 'filter.lfs.smudge=' '-c' 'filter.lfs.clean=' '-c' 'filter.lfs.process=' '-c' 'filter.lfs.required=false' 'rev-parse' '--git-common-dir'
16:06:04.604200 trace git-lfs: tq: sending batch of size 28                                                                                                                                                                                 
16:06:04.604224 trace git-lfs: api: batch 28 files
16:06:04.605897 trace git-lfs: tq: starting transfer adapter "ssh"
16:06:04.605923 trace git-lfs: run_command: ssh -oControlMaster=auto -oControlPath=/run/user/1000/git-lfs/sock-%C server git-lfs-transfer /home/git/repo.git upload
16:06:04.605983 trace git-lfs: exec: ssh '-oControlMaster=auto' '-oControlPath=/run/user/1000/git-lfs/sock-%C' 'server' 'git-lfs-transfer /home/git/repo.git upload'
16:06:04.622881 trace git-lfs: run_command: ssh -oControlMaster=auto -oControlPath=/run/user/1000/git-lfs/sock-%C server git-lfs-transfer /home/git/repo.git upload
16:06:04.622937 trace git-lfs: exec: ssh '-oControlMaster=auto' '-oControlPath=/run/user/1000/git-lfs/sock-%C' 'server' 'git-lfs-transfer /home/git/repo.git upload'
16:06:04.636722 trace git-lfs: run_command: ssh -oControlMaster=auto -oControlPath=/run/user/1000/git-lfs/sock-%C server git-lfs-transfer /home/git/repo.git upload
16:06:04.636788 trace git-lfs: exec: ssh '-oControlMaster=auto' '-oControlPath=/run/user/1000/git-lfs/sock-%C' 'server' 'git-lfs-transfer /home/git/repo.git upload'
16:06:04.650699 trace git-lfs: run_command: ssh -oControlMaster=auto -oControlPath=/run/user/1000/git-lfs/sock-%C server git-lfs-transfer /home/git/repo.git upload
16:06:04.650765 trace git-lfs: exec: ssh '-oControlMaster=auto' '-oControlPath=/run/user/1000/git-lfs/sock-%C' 'server' 'git-lfs-transfer /home/git/repo.git upload'
16:06:04.664993 trace git-lfs: run_command: ssh -oControlMaster=auto -oControlPath=/run/user/1000/git-lfs/sock-%C server git-lfs-transfer /home/git/repo.git upload
16:06:04.665065 trace git-lfs: exec: ssh '-oControlMaster=auto' '-oControlPath=/run/user/1000/git-lfs/sock-%C' 'server' 'git-lfs-transfer /home/git/repo.git upload'
16:06:04.679556 trace git-lfs: run_command: ssh -oControlMaster=auto -oControlPath=/run/user/1000/git-lfs/sock-%C server git-lfs-transfer /home/git/repo.git upload
16:06:04.679614 trace git-lfs: exec: ssh '-oControlMaster=auto' '-oControlPath=/run/user/1000/git-lfs/sock-%C' 'server' 'git-lfs-transfer /home/git/repo.git upload'
16:06:04.694323 trace git-lfs: run_command: ssh -oControlMaster=auto -oControlPath=/run/user/1000/git-lfs/sock-%C server git-lfs-transfer /home/git/repo.git upload
16:06:04.694389 trace git-lfs: exec: ssh '-oControlMaster=auto' '-oControlPath=/run/user/1000/git-lfs/sock-%C' 'server' 'git-lfs-transfer /home/git/repo.git upload'
Uploading LFS objects: 100% (28/28), 149 GB | 0 B/s

What version of Git LFS are you running? Could you reproduce this with the latest version of Git LFS?