gitbutlerapp / gitbutler

The GitButler version control client, backed by Git, powered by Tauri/Rust/Svelte
https://gitbutler.com
Other
13.07k stars 518 forks source link

The app keep crashing on huge repo #4722

Open dozGrou opened 2 months ago

dozGrou commented 2 months ago

Hi,

When I open a big repository (around 36k commits and 959 branches), the app keeps crashing after 1 or 2 min and the workspace is still loading without seeing anything except the loading indicator. Is there a log file that I can attach?

Byron commented 2 months ago

It's sad to still see this being an issue, even in a repository with only few commits and not too many branches at all. How many files are tracked, you can check with git ls-files | wc -l. I also assume you are using the latest stable version.

Our current test-case for 'big test repository' is https://gitlab.com/gitlab-org/gitlab, with nearly 80k files and a lot of branches, so I would assume that your repository has many more files if it is too slow always see the loading indicator.

A log file is written on startup and its path is described here. You should be able to tail it to see what's happening, and maybe there is an error. The tokio-console would show panics, these are a prime reason for the spinner going indefinitely (as there is never a response from the backend).

Thanks for your help in figuring this out.

dozGrou commented 2 months ago

There are 25738 files tracked and I'm using the latest version.

After some tests, it doesn't seem like a performance issue. I tried changing the target branch from main to our develop and it seems to have resolved the crashes.

In the ui-logs.log there are couples errors (when the main branch was the target) :

[2024-08-20][22:45:56][ERROR][webview::unknown] 9a52248e48ae4977a33c53ae2efb2083: Accès refusé. (os error 5)

Error: Accès refusé. (os error 5)
    at o.fromError (https://tauri.localhost/_app/immutable/chunks/ipc.CUXN3itm.js:1:855)
    at y (https://tauri.localhost/_app/immutable/chunks/ipc.CUXN3itm.js:1:1013)
    at async D.updateProject (https://tauri.localhost/_app/immutable/chunks/projects.DcRCzrpn.js:1:1332)
    at async Q (https://tauri.localhost/_app/immutable/nodes/19.DFVnABTG.js:37:1376)

[2024-08-20][22:45:56][ERROR][webview::unknown] 9a52248e48ae4977a33c53ae2efb2083: Accès refusé. (os error 5)

Error: Accès refusé. (os error 5)
    at o.fromError (https://tauri.localhost/_app/immutable/chunks/ipc.CUXN3itm.js:1:855)
    at y (https://tauri.localhost/_app/immutable/chunks/ipc.CUXN3itm.js:1:1013)
    at async D.updateProject (https://tauri.localhost/_app/immutable/chunks/projects.DcRCzrpn.js:1:1332)
    at async Q (https://tauri.localhost/_app/immutable/nodes/19.DFVnABTG.js:37:1376)

[2024-08-20][22:52:42][ERROR][webview::unknown] 0cbfc9aa1984460088d37e66648707e3: Accès refusé. (os error 5)

Error: Accès refusé. (os error 5)
    at o.fromError (https://tauri.localhost/_app/immutable/chunks/ipc.CUXN3itm.js:1:855)
    at y (https://tauri.localhost/_app/immutable/chunks/ipc.CUXN3itm.js:1:1013)
    at async D.updateProject (https://tauri.localhost/_app/immutable/chunks/projects.DcRCzrpn.js:1:1332)
    at async Q (https://tauri.localhost/_app/immutable/nodes/19.DFVnABTG.js:37:1376)

[2024-08-20][22:52:42][ERROR][webview::unknown] 0cbfc9aa1984460088d37e66648707e3: Accès refusé. (os error 5)

Error: Accès refusé. (os error 5)
    at o.fromError (https://tauri.localhost/_app/immutable/chunks/ipc.CUXN3itm.js:1:855)
    at y (https://tauri.localhost/_app/immutable/chunks/ipc.CUXN3itm.js:1:1013)
    at async D.updateProject (https://tauri.localhost/_app/immutable/chunks/projects.DcRCzrpn.js:1:1332)
    at async Q (https://tauri.localhost/_app/immutable/nodes/19.DFVnABTG.js:37:1376)

[2024-08-20][22:53:09][ERROR][webview::unknown] 7b9e8135a92848e89eccb9ae73c66764: There is no default target

Error: There is no default target
    at o.fromError (https://tauri.localhost/_app/immutable/chunks/ipc.CUXN3itm.js:1:855)
    at y (https://tauri.localhost/_app/immutable/chunks/ipc.CUXN3itm.js:1:1013)
    at async xe.list (https://tauri.localhost/_app/immutable/chunks/groupBy.BH6JcoO9.js:1:17353)
    at async xe.refresh (https://tauri.localhost/_app/immutable/chunks/groupBy.BH6JcoO9.js:1:17265)

[2024-08-20][22:53:09][ERROR][webview::unknown] 7b9e8135a92848e89eccb9ae73c66764: There is no default target

Error: There is no default target
    at o.fromError (https://tauri.localhost/_app/immutable/chunks/ipc.CUXN3itm.js:1:855)
    at y (https://tauri.localhost/_app/immutable/chunks/ipc.CUXN3itm.js:1:1013)
    at async xe.list (https://tauri.localhost/_app/immutable/chunks/groupBy.BH6JcoO9.js:1:17353)
    at async xe.refresh (https://tauri.localhost/_app/immutable/chunks/groupBy.BH6JcoO9.js:1:17265)

[2024-08-20][22:53:09][ERROR][webview::unknown] 877fb1687077465dbb11a173ecd9122b: There is no default target

Error: There is no default target
    at o.fromError (https://tauri.localhost/_app/immutable/chunks/ipc.CUXN3itm.js:1:855)
    at y (https://tauri.localhost/_app/immutable/chunks/ipc.CUXN3itm.js:1:1013)
    at async xe.list (https://tauri.localhost/_app/immutable/chunks/groupBy.BH6JcoO9.js:1:17353)
    at async xe.refresh (https://tauri.localhost/_app/immutable/chunks/groupBy.BH6JcoO9.js:1:17265)

[2024-08-20][22:53:09][ERROR][webview::unknown] 877fb1687077465dbb11a173ecd9122b: There is no default target

Error: There is no default target
    at o.fromError (https://tauri.localhost/_app/immutable/chunks/ipc.CUXN3itm.js:1:855)
    at y (https://tauri.localhost/_app/immutable/chunks/ipc.CUXN3itm.js:1:1013)
    at async xe.list (https://tauri.localhost/_app/immutable/chunks/groupBy.BH6JcoO9.js:1:17353)
    at async xe.refresh (https://tauri.localhost/_app/immutable/chunks/groupBy.BH6JcoO9.js:1:17265)

There are no errors in other log files. I assume the problem comes from the target branch. Hope this helps.

Byron commented 2 months ago

Thanks a lot!

"There is no default target" shows in the logs a lot and I have seen the UI not being able to respond to have moved away from gitbutler/integration or gitbutler/workspace, and fail instead, possibly leaving spinners spinning forever.

There is also Access Denied errors when running various tasks on the project, further emphasising that the UI fails permanently.

I myself have a project on disk where that happens, but it clearly states "Something went wrong" there.

Screenshot 2024-08-22 at 08 08 01

CC @ndom91 as this might be related to error handling in the UI.