Skip to content

Crashes with DEADLOCK error when launched using --debug option #4987

@gurjeet

Description

@gurjeet

Describe the bug

lazygit crashes when run with the --debug output.

It happened twice, and I have the partial logs from only one of the instances; other logs were overwritten by my next execution of lazygit.

To Reproduce

Steps to reproduce the behavior:

$ lazygit --debug
POTENTIAL DEADLOCK: Inconsistent locking. saw this ordering in one goroutine:
happened before
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:453 helpers.(*RefreshHelper).refreshBranches ??? <<<<<
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:452 helpers.(*RefreshHelper).refreshBranches ???
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:130 helpers.(*RefreshHelper).Refresh.func2.3 ???
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:114 helpers.(*RefreshHelper).Refresh.func2.1.2 ???
github.com/jesseduffield/lazygit/pkg/utils/utils.go:68 helpers.(*RefreshHelper).Refresh.func2.1.gowrap1.Safe.1 ???
github.com/jesseduffield/lazygit/pkg/utils/utils.go:81 utils.SafeWithError ???
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:110 helpers.(*RefreshHelper).Refresh.func2.1.gowrap1 ???

happened after
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:705 helpers.(*RefreshHelper).refreshStatus ??? <<<<<
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:704 helpers.(*RefreshHelper).refreshStatus ???
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:504 helpers.(*RefreshHelper).refreshBranches ???
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:130 helpers.(*RefreshHelper).Refresh.func2.3 ???
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:114 helpers.(*RefreshHelper).Refresh.func2.1.2 ???
github.com/jesseduffield/lazygit/pkg/utils/utils.go:68 helpers.(*RefreshHelper).Refresh.func2.1.gowrap1.Safe.1 ???
github.com/jesseduffield/lazygit/pkg/utils/utils.go:81 utils.SafeWithError ???
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:110 helpers.(*RefreshHelper).Refresh.func2.1.gowrap1 ???

in another goroutine: happened before
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:705 helpers.(*RefreshHelper).refreshStatus ??? <<<<<
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:704 helpers.(*RefreshHelper).refreshStatus ???
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:190 helpers.(*RefreshHelper).Refresh.func2 ???
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:206 helpers.(*RefreshHelper).Refresh ???
github.com/jesseduffield/lazygit/pkg/gui/gui.go:352 gui.(*Gui).onNewRepo.func1 ???
github.com/jesseduffield/gocui@v0.3.1-0.20250711082438-4aa4fd0b4d22/gui.go:869 gocui.(*Gui).handleEvent ???
github.com/jesseduffield/gocui@v0.3.1-0.20250711082438-4aa4fd0b4d22/gui.go:869 gocui.(*Gui).handleEvent ???
github.com/jesseduffield/gocui@v0.3.1-0.20250711082438-4aa4fd0b4d22/gui.go:816 gocui.(*Gui).processEvent ???
github.com/jesseduffield/gocui@v0.3.1-0.20250711082438-4aa4fd0b4d22/gui.go:796 gocui.(*Gui).MainLoop ???
github.com/jesseduffield/lazygit/pkg/gui/gui.go:857 gui.(*Gui).Run ???
github.com/jesseduffield/lazygit/pkg/gui/gui.go:863 gui.(*Gui).RunAndHandleError.func1 ???
github.com/jesseduffield/lazygit/pkg/utils/utils.go:81 utils.SafeWithError ???
github.com/jesseduffield/lazygit/pkg/gui/gui.go:862 gui.(*Gui).RunAndHandleError ???
github.com/jesseduffield/lazygit/pkg/app/app.go:50 app.Run ???
github.com/jesseduffield/lazygit/pkg/app/app.go:47 app.Run ???
github.com/jesseduffield/lazygit/pkg/app/entry_point.go:172 app.Start ???
github.com/jesseduffield/lazygit/main.go:23 main.main ???
internal/runtime/atomic/types.go:193 atomic.(*Uint32).Load ???

happened after
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:453 helpers.(*RefreshHelper).refreshBranches ??? <<<<<
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:452 helpers.(*RefreshHelper).refreshBranches ???
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:130 helpers.(*RefreshHelper).Refresh.func2.3 ???
github.com/jesseduffield/lazygit/pkg/gui/controllers/helpers/refresh_helper.go:106 helpers.(*RefreshHelper).Refresh.func2.1.1 ???
github.com/jesseduffield/gocui@v0.3.1-0.20250711082438-4aa4fd0b4d22/gui.go:722 gocui.(*Gui).onWorkerAux ???
github.com/jesseduffield/gocui@v0.3.1-0.20250711082438-4aa4fd0b4d22/task.go:22 gocui.(*TaskImpl).Done ???

Other goroutines holding locks:
<output truncated>

Expected behavior

The TUI should not crash.

Screenshots

None.

Version info:

$ which git lazygit
/opt/homebrew/bin/git
/opt/homebrew/bin/lazygit

$ lazygit --version
commit=, build date=, build source=Homebrew, version=0.55.1, os=darwin, arch=arm64, git version=2.50.0

$ git --version
git version 2.50.0

Additional context

Git and lazygit are installed using Homebrew.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions