lazygit: Unable to push/pull with 0.39.1

Describe the bug After upgrading to the latest lazygit i seem unable to pull or push with the progress modal just waiting around to esc out of it

To Reproduce Steps to reproduce the behavior:

  1. Load lazygit
  2. Press p to pull or shift + p to push
  3. Modal launches and hangs

Expected behavior It should push or pull

Version info: commit=39c900c7e709c9f18a84d6aa8f3f78f371af5136, build date=2023-07-20T23:07:34Z, build source=binaryRelease, version=0.39.1, os=windows, arch=amd64, git version=2.40.0.windows.1

git version 2.40.0.windows.1

Additional context Add any other context about the problem here.

Note: This is on the latest version from scoop. đź’– thanks for lazygit!

Debug output

POTENTIAL DEADLOCK:
Previous place where the lock was grabbed
goroutine 13 lock 0xc0004702a0










                                //home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:50 oscommands.(*cmdObjRunner).RunWithOutput ??? <<<<<
/home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:49 oscommands.(*cmdObjRunner).RunWithOutput ???
/home/runner/work/lazygit/lazygit/pkg/commands/git_cmd_obj_runner.go:34 commands.(*gitCmdObjRunner).RunWithOutput ???
/home/runner/work/lazygit/lazygit/pkg/commands/git_cmd_obj_runner.go:24 commands.(*gitCmdObjRunner).Run ???
/home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj.go:184 oscommands.(*CmdObj).Run ???
/home/runner/work/lazygit/lazygit/pkg/commands/git_commands/sync.go:77 git_commands.(*SyncCommands).FetchBackground ???
/home/runner/work/lazygit/lazygit/pkg/gui/background.go:107 gui.(*BackgroundRoutineMgr).backgroundFetch ???
/home/runner/work/lazygit/lazygit/pkg/gui/background.go:59 gui.(*BackgroundRoutineMgr).startBackgroundFetch ???
/home/runner/work/lazygit/lazygit/pkg/utils/utils.go:107 utils.Safe.func1 ???
/home/runner/work/lazygit/lazygit/pkg/utils/utils.go:120 utils.SafeWithError ???
/home/runner/work/lazygit/lazygit/pkg/utils/utils.go:108 utils.Safe ???

Have been trying to lock it again for more than 30s
goroutine 243 lock 0xc0004702a0
/home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:50 oscommands.(*cmdObjRunner).RunWithOutput ??? <<<<<
/home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:49 oscommands.(*cmdObjRunner).RunWithOutput ???
/home/runner/work/lazygit/lazygit/pkg/commands/git_cmd_obj_runner.go:34 commands.(*gitCmdObjRunner).RunWithOutput ???
/home/runner/work/lazygit/lazygit/pkg/commands/git_cmd_obj_runner.go:24 commands.(*gitCmdObjRunner).Run ???
/home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj.go:184 oscommands.(*CmdObj).Run ???
/home/runner/work/lazygit/lazygit/pkg/commands/git_commands/sync.go:48 git_commands.(*SyncCommands).Push ???
/home/runner/work/lazygit/lazygit/pkg/gui/controllers/sync_controller.go:171 controllers.(*SyncController).pushAux.func1 ???
/home/runner/work/lazygit/lazygit/pkg/gui/popup/popup_handler.go:146 popup.(*PopupHandler).WithLoaderPanel.func1 ???
/home/runner/work/lazygit/lazygit/vendor/github.com/jesseduffield/gocui/gui.go:674 gocui.(*Gui).onWorkerAux ???
/home/runner/work/lazygit/lazygit/vendor/github.com/jesseduffield/gocui/gui.go:660 gocui.(*Gui).OnWorker.func1 ???

Here is what goroutine 13 doing now
goroutine 13 [select]:
io.(*pipe).read(0xc00037a120, {0xc000406000, 0x1000, 0xafd7c5?})
        /opt/hostedtoolcache/go/1.18.10/x64/src/io/pipe.go:57 +0xb1
io.(*PipeReader).Read(0xa3d6a84a00000003?, {0xc000406000?, 0x1010000000000?, 0x178acb725b8?})
        /opt/hostedtoolcache/go/1.18.10/x64/src/io/pipe.go:136 +0x25
io.(*teeReader).Read(0xc00008c6c0, {0xc000406000, 0xc000371780?, 0x1000})
        /opt/hostedtoolcache/go/1.18.10/x64/src/io/io.go:572 +0x37
io.(*teeReader).Read(0xc00008c6e0, {0xc000406000, 0x13106dd?, 0x1000})
        /opt/hostedtoolcache/go/1.18.10/x64/src/io/io.go:572 +0x37
bufio.(*Scanner).Scan(0xc0006098b8)
        /opt/hostedtoolcache/go/1.18.10/x64/src/bufio/scan.go:215 +0x865
github.com/jesseduffield/lazygit/pkg/commands/oscommands.(*cmdObjRunner).processOutput(0x36?, {0x14462e0, 0xc00008c6e0}, {0x1445a80, 0xc00011e1e0}, 0x137db08, {0x0, 0x0})
        /home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:329 +0xd9
github.com/jesseduffield/lazygit/pkg/commands/oscommands.(*cmdObjRunner).runAndDetectCredentialRequest.func1(0xc00011e240, {0x1445b00?, 0xc00011e060})
        /home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:315 +0x127
github.com/jesseduffield/lazygit/pkg/commands/oscommands.(*cmdObjRunner).runAndStreamAux(0xc000109190, {0x1452140, 0xc00037a0c0}, 0xc000371ca8)
        /home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:240 +0x677
github.com/jesseduffield/lazygit/pkg/commands/oscommands.(*cmdObjRunner).runAndDetectCredentialRequest(0xc000109190, {0x1452140, 0xc00037a0c0}, 0x137db08)
        /home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:312 +0xc8
github.com/jesseduffield/lazygit/pkg/commands/oscommands.(*cmdObjRunner).runWithCredentialHandling(0xc0005a3d78?, {0x1452140, 0xc00037a0c0})
        /home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:287 +0x54
github.com/jesseduffield/lazygit/pkg/commands/oscommands.(*cmdObjRunner).RunWithOutput(0xc00037a060?, {0x1452140, 0xc00037a0c0})
        /home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:55 +0x12c
github.com/jesseduffield/lazygit/pkg/commands.(*gitCmdObjRunner).RunWithOutput(0xc000004618, {0x1452140, 0xc00037a060})
        /home/runner/work/lazygit/lazygit/pkg/commands/git_cmd_obj_runner.go:33 +0xe7
github.com/jesseduffield/lazygit/pkg/commands.(*gitCmdObjRunner).Run(0xc00008c4a0?, {0x1452140?, 0xc00037a060?})
        /home/runner/work/lazygit/lazygit/pkg/commands/git_cmd_obj_runner.go:24 +0x25
github.com/jesseduffield/lazygit/pkg/commands/oscommands.(*CmdObj).Run(0xc0003060d8?)
        /home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj.go:185 +0x2f
github.com/jesseduffield/lazygit/pkg/commands/git_commands.(*SyncCommands).FetchBackground(0xc000378d00?)
        /home/runner/work/lazygit/lazygit/pkg/commands/git_commands/sync.go:78 +0x22
github.com/jesseduffield/lazygit/pkg/gui.(*BackgroundRoutineMgr).backgroundFetch(0xc0001091a0)
        /home/runner/work/lazygit/lazygit/pkg/gui/background.go:104 +0x30
github.com/jesseduffield/lazygit/pkg/gui.(*BackgroundRoutineMgr).startBackgroundFetch(0xc0001091a0)
        /home/runner/work/lazygit/lazygit/pkg/gui/background.go:59 +0x71
github.com/jesseduffield/lazygit/pkg/utils.Safe.func1()
        /home/runner/work/lazygit/lazygit/pkg/utils/utils.go:108 +0x1b
github.com/jesseduffield/lazygit/pkg/utils.SafeWithError(0x0?)
        /home/runner/work/lazygit/lazygit/pkg/utils/utils.go:119 +0x67
github.com/jesseduffield/lazygit/pkg/utils.Safe(0x0?)
        /home/runner/work/lazygit/lazygit/pkg/utils/utils.go:108 +0x35
created by github.com/jesseduffield/lazygit/pkg/gui.(*BackgroundRoutineMgr).startBackgroundRoutines
        /home/runner/work/lazygit/lazygit/pkg/gui/background.go:31 +0xdb

Debug

❯ lazygit --logs
Tailing log file C:\Users\JonathanDent\AppData\Roaming\lazygit\development.log

Jul 21 10:00:49 |DEBU| RunCommand command="git rev-parse --symbolic-full-name main@{u}"
Jul 21 10:00:49 |ERRO| fatal: no such branch: 'main'
 command="git rev-parse --symbolic-full-name main@{u}"
Jul 21 10:00:49 |DEBU| RunCommand command="git rev-parse --verify --quiet refs/remotes/origin/main"
Jul 21 10:00:49 |ERRO| <no msg> command="git rev-parse --verify --quiet refs/remotes/origin/main"
Jul 21 10:00:49 |DEBU| RunCommand command="git rev-parse --verify --quiet refs/heads/main"
Jul 21 10:00:49 |ERRO| <no msg> command="git rev-parse --verify --quiet refs/heads/main"
Jul 21 10:00:58 |INFO| refreshing the following scopes in sync mode: files
Jul 21 10:00:58 |DEBU| using cache for key status.showUntrackedFiles
Jul 21 10:00:58 |DEBU| RunCommand command="git status --untracked-files=all --porcelain -z"
Jul 21 10:00:58 |DEBU| RunCommand command="C:\\Program Files\\Git\\cmd\\git.exe diff --submodule --no-ext-diff --unified=3 --color=always -- src/NewConman.WebIdentity"
Jul 21 10:01:08 |INFO| refreshing the following scopes in sync mode: files
Jul 21 10:01:08 |DEBU| using cache for key status.showUntrackedFiles
Jul 21 10:01:08 |DEBU| RunCommand command="git status --untracked-files=all --porcelain -z"
Jul 21 10:01:12 |DEBU| RunCommand command="C:\\Program Files\\Git\\cmd\\git.exe diff --submodule --no-ext-diff --unified=3 --color=always -- src/NewConman.WebIdentity"
Jul 21 10:01:18 |INFO| refreshing the following scopes in sync mode: files
Jul 21 10:01:18 |DEBU| using cache for key status.showUntrackedFiles
Jul 21 10:01:18 |DEBU| RunCommand command="git status --untracked-files=all --porcelain -z"
Jul 21 10:01:28 |INFO| refreshing the following scopes in sync mode: files
Jul 21 10:01:28 |DEBU| using cache for key status.showUntrackedFiles
Jul 21 10:01:28 |DEBU| RunCommand command="git status --untracked-files=all --porcelain -z"

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 2
  • Comments: 15 (9 by maintainers)

Most upvoted comments

@jesseduffield thank you, that’s fixed it!

@jesseduffield sadly not. Logs/Debug from this version.

Debug

POTENTIAL DEADLOCK:
Previous place where the lock was grabbed
goroutine 69 lock 0xc00045c130

                         c/home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:50 oscommands.(*cmdObjRunner).RunWithOutput ??? <<<<<
/home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:49 oscommands.(*cmdObjRunner).RunWithOutput ???
/home/runner/work/lazygit/lazygit/pkg/commands/git_cmd_obj_runner.go:34 commands.(*gitCmdObjRunner).RunWithOutput ???
/home/runner/work/lazygit/lazygit/pkg/commands/git_cmd_obj_runner.go:24 commands.(*gitCmdObjRunner).Run ???
/home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj.go:184 oscommands.(*CmdObj).Run ???
/home/runner/work/lazygit/lazygit/pkg/commands/git_commands/sync.go:77 git_commands.(*SyncCommands).FetchBackground ???
/home/runner/work/lazygit/lazygit/pkg/gui/background.go:107 gui.(*BackgroundRoutineMgr).backgroundFetch ???
/home/runner/work/lazygit/lazygit/pkg/gui/background.go:59 gui.(*BackgroundRoutineMgr).startBackgroundFetch ???
/home/runner/work/lazygit/lazygit/pkg/utils/utils.go:107 utils.Safe.func1 ???
/home/runner/work/lazygit/lazygit/pkg/utils/utils.go:120 utils.SafeWithError ???
/home/runner/work/lazygit/lazygit/pkg/utils/utils.go:108 utils.Safe ???

Have been trying to lock it again for more than 30s
goroutine 111 lock 0xc00045c130
/home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:50 oscommands.(*cmdObjRunner).RunWithOutput ??? <<<<<
/home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:49 oscommands.(*cmdObjRunner).RunWithOutput ???
/home/runner/work/lazygit/lazygit/pkg/commands/git_cmd_obj_runner.go:34 commands.(*gitCmdObjRunner).RunWithOutput ???
/home/runner/work/lazygit/lazygit/pkg/commands/git_cmd_obj_runner.go:24 commands.(*gitCmdObjRunner).Run ???
/home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj.go:184 oscommands.(*CmdObj).Run ???
/home/runner/work/lazygit/lazygit/pkg/commands/git_commands/sync.go:96 git_commands.(*SyncCommands).Pull ???
/home/runner/work/lazygit/lazygit/pkg/gui/controllers/sync_controller.go:149 controllers.(*SyncController).pullWithLock ???
/home/runner/work/lazygit/lazygit/pkg/gui/controllers/sync_controller.go:142 controllers.(*SyncController).PullAux.func1 ???
/home/runner/work/lazygit/lazygit/pkg/gui/popup/popup_handler.go:146 popup.(*PopupHandler).WithLoaderPanel.func1 ???
/home/runner/work/lazygit/lazygit/vendor/github.com/jesseduffield/gocui/gui.go:674 gocui.(*Gui).onWorkerAux ???
/home/runner/work/lazygit/lazygit/vendor/github.com/jesseduffield/gocui/gui.go:660 gocui.(*Gui).OnWorker.func1 ???

Here is what goroutine 69 doing now
goroutine 69 [select]:
io.(*pipe).read(0xc0003807e0, {0xc000637000, 0x1000, 0xc7d7c5?})
        /opt/hostedtoolcache/go/1.18.10/x64/src/io/pipe.go:57 +0xb1
io.(*PipeReader).Read(0x54ad9ebd00000003?, {0xc000637000?, 0x1000000000000?, 0x1b6a8393cc8?})
        /opt/hostedtoolcache/go/1.18.10/x64/src/io/pipe.go:136 +0x25
io.(*teeReader).Read(0xc000446120, {0xc000637000, 0xc00062f780?, 0x1000})
        /opt/hostedtoolcache/go/1.18.10/x64/src/io/io.go:572 +0x37
io.(*teeReader).Read(0xc000446140, {0xc000637000, 0x1494cd7?, 0x1000})
        /opt/hostedtoolcache/go/1.18.10/x64/src/io/io.go:572 +0x37
bufio.(*Scanner).Scan(0xc0004c78b8)
        /opt/hostedtoolcache/go/1.18.10/x64/src/bufio/scan.go:215 +0x865
github.com/jesseduffield/lazygit/pkg/commands/oscommands.(*cmdObjRunner).processOutput(0x36?, {0x15caa40, 0xc000446140}, {0x15ca1e0, 0xc00060a1e0}, 0x15020b0, {0x0, 0x0})
        /home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:329 +0xd9
github.com/jesseduffield/lazygit/pkg/commands/oscommands.(*cmdObjRunner).runAndDetectCredentialRequest.func1(0xc00060a240, {0x15ca260?, 0xc00060a060})
        /home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:315 +0x127
github.com/jesseduffield/lazygit/pkg/commands/oscommands.(*cmdObjRunner).runAndStreamAux(0xc00008b210, {0x15d6b60, 0xc000380780}, 0xc00062fca8)
        /home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:240 +0x677
github.com/jesseduffield/lazygit/pkg/commands/oscommands.(*cmdObjRunner).runAndDetectCredentialRequest(0xc00008b210, {0x15d6b60, 0xc000380780}, 0x15020b0)
        /home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:312 +0xc8
github.com/jesseduffield/lazygit/pkg/commands/oscommands.(*cmdObjRunner).runWithCredentialHandling(0xc0002ddd78?, {0x15d6b60, 0xc000380780})
        /home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:287 +0x54
github.com/jesseduffield/lazygit/pkg/commands/oscommands.(*cmdObjRunner).RunWithOutput(0xc000380720?, {0x15d6b60, 0xc000380780})
        /home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj_runner.go:55 +0x12c
github.com/jesseduffield/lazygit/pkg/commands.(*gitCmdObjRunner).RunWithOutput(0xc0001165d0, {0x15d6b60, 0xc000380720})
        /home/runner/work/lazygit/lazygit/pkg/commands/git_cmd_obj_runner.go:33 +0xe7
github.com/jesseduffield/lazygit/pkg/commands.(*gitCmdObjRunner).Run(0xc000446000?, {0x15d6b60?, 0xc000380720?})
        /home/runner/work/lazygit/lazygit/pkg/commands/git_cmd_obj_runner.go:24 +0x25
github.com/jesseduffield/lazygit/pkg/commands/oscommands.(*CmdObj).Run(0xc00014e130?)
        /home/runner/work/lazygit/lazygit/pkg/commands/oscommands/cmd_obj.go:185 +0x2f
github.com/jesseduffield/lazygit/pkg/commands/git_commands.(*SyncCommands).FetchBackground(0xc0002a7520?)
        /home/runner/work/lazygit/lazygit/pkg/commands/git_commands/sync.go:78 +0x22
github.com/jesseduffield/lazygit/pkg/gui.(*BackgroundRoutineMgr).backgroundFetch(0xc00008b220)
        /home/runner/work/lazygit/lazygit/pkg/gui/background.go:104 +0x30
github.com/jesseduffield/lazygit/pkg/gui.(*BackgroundRoutineMgr).startBackgroundFetch(0xc00008b220)
        /home/runner/work/lazygit/lazygit/pkg/gui/background.go:59 +0x71
github.com/jesseduffield/lazygit/pkg/utils.Safe.func1()
        /home/runner/work/lazygit/lazygit/pkg/utils/utils.go:108 +0x1b
github.com/jesseduffield/lazygit/pkg/utils.SafeWithError(0x0?)
        /home/runner/work/lazygit/lazygit/pkg/utils/utils.go:119 +0x67
github.com/jesseduffield/lazygit/pkg/utils.Safe(0x0?)
        /home/runner/work/lazygit/lazygit/pkg/utils/utils.go:108 +0x35
created by github.com/jesseduffield/lazygit/pkg/gui.(*BackgroundRoutineMgr).startBackgroundRoutines
        /home/runner/work/lazygit/lazygit/pkg/gui/background.go:31 +0xdb

Logs

Jul 24 10:00:42 |DEBU| RunCommand command="git rev-parse --verify --quiet refs/heads/master"
Jul 24 10:00:42 |ERRO| <no msg> command="git rev-parse --verify --quiet refs/heads/master"
Jul 24 10:00:42 |DEBU| RunCommand command="git rev-parse --symbolic-full-name main@{u}"
Jul 24 10:00:42 |ERRO| fatal: no such branch: 'main'
 command="git rev-parse --symbolic-full-name main@{u}"
Jul 24 10:00:42 |DEBU| RunCommand command="git rev-parse --verify --quiet refs/remotes/origin/main"
Jul 24 10:00:42 |ERRO| <no msg> command="git rev-parse --verify --quiet refs/remotes/origin/main"
Jul 24 10:00:42 |DEBU| RunCommand command="git rev-parse --verify --quiet refs/heads/main"
Jul 24 10:00:42 |ERRO| <no msg> command="git rev-parse --verify --quiet refs/heads/main"
Jul 24 10:00:44 |DEBU| RunCommand command="C:\\Program Files\\Git\\cmd\\git.exe diff --submodule --no-ext-diff --unified=3 --color=always -- src/NewConman.WebIdentity"
Jul 24 10:00:44 |DEBU| RunCommand command="git rev-parse --git-dir"
Jul 24 10:01:17 |INFO| language: en-GB
Jul 24 10:01:18 |DEBU| RunCommand command="git --version"
Jul 24 10:01:18 |DEBU| RunCommand command="git rev-parse --git-dir"
Jul 24 10:01:18 |DEBU| RunCommand command="git rev-parse --is-bare-repository"
Jul 24 10:01:18 |DEBU| RunCommand command="git rev-parse --verify --quiet refs/remotes/origin/master"
Jul 24 10:01:18 |ERRO| <no msg> command="git rev-parse --verify --quiet refs/remotes/origin/master"
Jul 24 10:01:18 |DEBU| RunCommand command="git rev-parse --verify --quiet refs/heads/master"
Jul 24 10:01:18 |ERRO| <no msg> command="git rev-parse --verify --quiet refs/heads/master"
Jul 24 10:01:18 |DEBU| RunCommand command="git rev-parse --symbolic-full-name main@{u}"
Jul 24 10:01:19 |ERRO| fatal: no such branch: 'main'
 command="git rev-parse --symbolic-full-name main@{u}"
Jul 24 10:01:19 |DEBU| RunCommand command="git rev-parse --verify --quiet refs/remotes/origin/main"
Jul 24 10:01:19 |ERRO| <no msg> command="git rev-parse --verify --quiet refs/remotes/origin/main"
Jul 24 10:01:19 |DEBU| RunCommand command="git rev-parse --verify --quiet refs/heads/main"
Jul 24 10:01:19 |ERRO| <no msg> command="git rev-parse --verify --quiet refs/heads/main"
Jul 24 10:01:19 |ERRO| <no msg> command="git rev-parse --verify --quiet refs/heads/main"
Jul 24 10:01:28 |INFO| refreshing the following scopes in sync mode: files
Jul 24 10:01:28 |DEBU| using cache for key status.showUntrackedFiles
Jul 24 10:01:28 |DEBU| RunCommand command="git status --untracked-files=all --porcelain -z"
Jul 24 10:01:38 |INFO| refreshing the following scopes in sync mode: files
Jul 24 10:01:38 |DEBU| using cache for key status.showUntrackedFiles
Jul 24 10:01:38 |DEBU| RunCommand command="git status --untracked-files=all --porcelain -z"
Jul 24 10:01:48 |INFO| refreshing the following scopes in sync mode: files
Jul 24 10:01:48 |DEBU| using cache for key status.showUntrackedFiles
Jul 24 10:01:48 |DEBU| RunCommand command="git status --untracked-files=all --porcelain -z"

I am at v0.39.3 (using scoop) and must tell you, that the issue hasn’t been solved with the update.

@jesseduffield its every time.