Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows access denied errors/gitbutler deleting files #3560

Open
slingshotvfx opened this issue Apr 19, 2024 · 2 comments
Open

Windows access denied errors/gitbutler deleting files #3560

slingshotvfx opened this issue Apr 19, 2024 · 2 comments
Labels
bug Something isn't working os:windows The Windows platform

Comments

@slingshotvfx
Copy link

gitbutler 0.11.3 for windows very often has issues with locked files/access denied errors on my machine. Running windows 11.

When these errors pop up, it permanently deletes the file(s) that were erroring, resulting in a loss of data.

This might be a dupe of #3412, but I'm opening a new issue because I have no explorer windows, command prompts, or VS Code instances open, and file locksmith shows no handles/processes with locks on the files that show up in the error logs.

Is it possible gitbutler is locking/blocking it's own access to files somehow?

Here's an example:

deleting a branch after it's merged

image

2024-04-19T18:57:25.479384Z  INFO delete_virtual_branch: crates\gitbutler-tauri\src\virtual_branches.rs:187: new �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mbranch_id�[0m�[2m=�[0me2091767-34d4-4403-916a-94caf37b4eb8
2024-04-19T18:57:25.538656Z  INFO delete_virtual_branch:workdir: crates\gitbutler-core\src\git\diff.rs:68: new �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mbranch_id�[0m�[2m=�[0me2091767-34d4-4403-916a-94caf37b4eb8 �[3mcommit_oid�[0m�[2m=�[0mOid { oid: be8e297f54ff1f903bf8a77df586bf956d68fd0f }
2024-04-19T18:57:25.585488Z  INFO delete_virtual_branch:workdir: crates\gitbutler-core\src\git\diff.rs:68: close time.busy=46.8ms time.idle=39.0µs �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mbranch_id�[0m�[2m=�[0me2091767-34d4-4403-916a-94caf37b4eb8 �[3mcommit_oid�[0m�[2m=�[0mOid { oid: be8e297f54ff1f903bf8a77df586bf956d68fd0f }
2024-04-19T18:57:25.635546Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: new �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9
2024-04-19T18:57:25.636973Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: close time.busy=1.40ms time.idle=31.9µs �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mfs_events�[0m�[2m=�[0m12 �[3mfs_events�[0m�[2m=�[0m12 �[3mignored�[0m�[2m=�[0m0 �[3mignored�[0m�[2m=�[0m0 �[3mgit_noop�[0m�[2m=�[0m11 �[3mgit_noop�[0m�[2m=�[0m11 �[3mgit�[0m�[2m=�[0m1 �[3mgit�[0m�[2m=�[0m1 �[3mproject�[0m�[2m=�[0m0 �[3mproject�[0m�[2m=�[0m0 �[3mgit_dedup�[0m�[2m=�[0m1 �[3mgit_dedup�[0m�[2m=�[0m1
2024-04-19T18:57:25.637165Z  INFO handle: crates\gitbutler-watcher\src\handler.rs:73: new �[3mevent�[0m�[2m=�[0mGitFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, logs\HEAD)
2024-04-19T18:57:25.637837Z  INFO handle: crates\gitbutler-watcher\src\handler.rs:73: close time.busy=652µs time.idle=34.9µs �[3mevent�[0m�[2m=�[0mGitFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, logs\HEAD)
2024-04-19T18:57:25.664806Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: new �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9
2024-04-19T18:57:25.666269Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: close time.busy=1.44ms time.idle=29.2µs �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mfs_events�[0m�[2m=�[0m56 �[3mfs_events�[0m�[2m=�[0m56 �[3mignored�[0m�[2m=�[0m0 �[3mignored�[0m�[2m=�[0m0 �[3mgit_noop�[0m�[2m=�[0m53 �[3mgit_noop�[0m�[2m=�[0m53 �[3mgit�[0m�[2m=�[0m2 �[3mgit�[0m�[2m=�[0m2 �[3mproject�[0m�[2m=�[0m0 �[3mproject�[0m�[2m=�[0m0 �[3mgit_dedup�[0m�[2m=�[0m2 �[3mgit_dedup�[0m�[2m=�[0m2
2024-04-19T18:57:25.666320Z  INFO handle: crates\gitbutler-watcher\src\handler.rs:73: new �[3mevent�[0m�[2m=�[0mGitFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, index, logs\HEAD)
2024-04-19T18:57:25.666737Z  INFO handle: crates\gitbutler-watcher\src\handler.rs:73: close time.busy=402µs time.idle=18.3µs �[3mevent�[0m�[2m=�[0mGitFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, index, logs\HEAD)
2024-04-19T18:57:25.690696Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: new �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9
2024-04-19T18:57:25.692465Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: close time.busy=1.74ms time.idle=35.0µs �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mfs_events�[0m�[2m=�[0m5 �[3mfs_events�[0m�[2m=�[0m5 �[3mignored�[0m�[2m=�[0m0 �[3mignored�[0m�[2m=�[0m0 �[3mgit_noop�[0m�[2m=�[0m5 �[3mgit_noop�[0m�[2m=�[0m5 �[3mgit�[0m�[2m=�[0m0 �[3mgit�[0m�[2m=�[0m0 �[3mproject�[0m�[2m=�[0m0 �[3mproject�[0m�[2m=�[0m0
2024-04-19T18:57:25.701038Z ERROR delete_virtual_branch: crates\gitbutler-tauri\src\virtual_branches.rs:187: error=Error(failed to checkout tree

Caused by:
    failed rmdir - 'C:/Users/<redacted>/Documents/main/backend/app/adapters/' is locked: Access is denied.
    ; class=Os (2); code=Locked (-14)) �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mbranch_id�[0m�[2m=�[0me2091767-34d4-4403-916a-94caf37b4eb8
2024-04-19T18:57:25.701049Z  INFO delete_virtual_branch: crates\gitbutler-tauri\src\virtual_branches.rs:187: close time.busy=222ms time.idle=36.5µs �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mbranch_id�[0m�[2m=�[0me2091767-34d4-4403-916a-94caf37b4eb8
2024-04-19T18:57:25.702048Z  INFO list_remote_branches: crates\gitbutler-tauri\src\virtual_branches.rs:379: new �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9
2024-04-19T18:57:25.708571Z  INFO list_remote_branches: crates\gitbutler-tauri\src\virtual_branches.rs:379: close time.busy=6.51ms time.idle=21.6µs �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9
2024-04-19T18:57:25.715917Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: new �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9
2024-04-19T18:57:25.717136Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: close time.busy=1.20ms time.idle=22.6µs �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mfs_events�[0m�[2m=�[0m33 �[3mfs_events�[0m�[2m=�[0m33 �[3mignored�[0m�[2m=�[0m0 �[3mignored�[0m�[2m=�[0m0 �[3mgit_noop�[0m�[2m=�[0m33 �[3mgit_noop�[0m�[2m=�[0m33 �[3mgit�[0m�[2m=�[0m0 �[3mgit�[0m�[2m=�[0m0 �[3mproject�[0m�[2m=�[0m0 �[3mproject�[0m�[2m=�[0m0
2024-04-19T18:57:25.741342Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: new �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9
2024-04-19T18:57:25.743345Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: close time.busy=1.98ms time.idle=34.1µs �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mfs_events�[0m�[2m=�[0m3 �[3mfs_events�[0m�[2m=�[0m3 �[3mignored�[0m�[2m=�[0m0 �[3mignored�[0m�[2m=�[0m0 �[3mgit_noop�[0m�[2m=�[0m3 �[3mgit_noop�[0m�[2m=�[0m3 �[3mgit�[0m�[2m=�[0m0 �[3mgit�[0m�[2m=�[0m0 �[3mproject�[0m�[2m=�[0m0 �[3mproject�[0m�[2m=�[0m0
2024-04-19T18:57:25.766865Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: new �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9
2024-04-19T18:57:25.768067Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: close time.busy=1.19ms time.idle=22.8µs �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mfs_events�[0m�[2m=�[0m18 �[3mfs_events�[0m�[2m=�[0m18 �[3mignored�[0m�[2m=�[0m0 �[3mignored�[0m�[2m=�[0m0 �[3mgit_noop�[0m�[2m=�[0m18 �[3mgit_noop�[0m�[2m=�[0m18 �[3mgit�[0m�[2m=�[0m0 �[3mgit�[0m�[2m=�[0m0 �[3mproject�[0m�[2m=�[0m0 �[3mproject�[0m�[2m=�[0m0
2024-04-19T18:57:25.791971Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: new �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9
2024-04-19T18:57:25.795832Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: close time.busy=3.82ms time.idle=54.5µs �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mfs_events�[0m�[2m=�[0m17 �[3mfs_events�[0m�[2m=�[0m17 �[3mignored�[0m�[2m=�[0m0 �[3mignored�[0m�[2m=�[0m0 �[3mgit_noop�[0m�[2m=�[0m17 �[3mgit_noop�[0m�[2m=�[0m17 �[3mgit�[0m�[2m=�[0m0 �[3mgit�[0m�[2m=�[0m0 �[3mproject�[0m�[2m=�[0m0 �[3mproject�[0m�[2m=�[0m0
2024-04-19T18:57:25.817632Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: new �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9
2024-04-19T18:57:25.821797Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: close time.busy=4.13ms time.idle=55.0µs �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mfs_events�[0m�[2m=�[0m27 �[3mfs_events�[0m�[2m=�[0m27 �[3mignored�[0m�[2m=�[0m0 �[3mignored�[0m�[2m=�[0m0 �[3mgit_noop�[0m�[2m=�[0m25 �[3mgit_noop�[0m�[2m=�[0m25 �[3mgit�[0m�[2m=�[0m0 �[3mgit�[0m�[2m=�[0m0 �[3mproject�[0m�[2m=�[0m2 �[3mproject�[0m�[2m=�[0m2 �[3mproject_dedup�[0m�[2m=�[0m2 �[3mproject_dedup�[0m�[2m=�[0m2
2024-04-19T18:57:25.821858Z  INFO handle: crates\gitbutler-watcher\src\handler.rs:73: new �[3mevent�[0m�[2m=�[0mProjectFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, backend\app\adapters\filesystem.py, backend\app\adapters)
2024-04-19T18:57:25.821876Z  INFO handle:recalculate_everything: crates\gitbutler-watcher\src\handler.rs:287: new �[3mevent�[0m�[2m=�[0mProjectFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, backend\app\adapters\filesystem.py, backend\app\adapters) �[3mpaths�[0m�[2m=�[0m2
2024-04-19T18:57:25.821952Z  INFO handle:recalculate_everything:calculate_virtual_branches: crates\gitbutler-watcher\src\handler.rs:172: new �[3mevent�[0m�[2m=�[0mProjectFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, backend\app\adapters\filesystem.py, backend\app\adapters) �[3mpaths�[0m�[2m=�[0m2
2024-04-19T18:57:25.822074Z  INFO handle:recalculate_everything:calculate_deltas: crates\gitbutler-watcher\src\handler\calculate_deltas.rs:11: new �[3mevent�[0m�[2m=�[0mProjectFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, backend\app\adapters\filesystem.py, backend\app\adapters) �[3mpaths�[0m�[2m=�[0m2
2024-04-19T18:57:25.849488Z  INFO handle:recalculate_everything:calculate_deltas: crates\gitbutler-watcher\src\handler\calculate_deltas.rs:11: close time.busy=27.4ms time.idle=52.5µs �[3mevent�[0m�[2m=�[0mProjectFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, backend\app\adapters\filesystem.py, backend\app\adapters) �[3mpaths�[0m�[2m=�[0m2
2024-04-19T18:57:25.865405Z  INFO handle:recalculate_everything:calculate_virtual_branches:workdir: crates\gitbutler-core\src\git\diff.rs:68: new �[3mevent�[0m�[2m=�[0mProjectFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, backend\app\adapters\filesystem.py, backend\app\adapters) �[3mpaths�[0m�[2m=�[0m2 �[3mcommit_oid�[0m�[2m=�[0mOid { oid: 3c10d56378000f4b9a3110707e3830ccfbfa95ab }
2024-04-19T18:57:25.899961Z  INFO handle:recalculate_everything:calculate_virtual_branches:workdir: crates\gitbutler-core\src\git\diff.rs:68: close time.busy=34.5ms time.idle=35.2µs �[3mevent�[0m�[2m=�[0mProjectFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, backend\app\adapters\filesystem.py, backend\app\adapters) �[3mpaths�[0m�[2m=�[0m2 �[3mcommit_oid�[0m�[2m=�[0mOid { oid: 3c10d56378000f4b9a3110707e3830ccfbfa95ab }
2024-04-19T18:57:25.959321Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: new �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9
2024-04-19T18:57:25.960655Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: close time.busy=1.31ms time.idle=29.0µs �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mfs_events�[0m�[2m=�[0m15 �[3mfs_events�[0m�[2m=�[0m15 �[3mignored�[0m�[2m=�[0m0 �[3mignored�[0m�[2m=�[0m0 �[3mgit_noop�[0m�[2m=�[0m13 �[3mgit_noop�[0m�[2m=�[0m13 �[3mgit�[0m�[2m=�[0m2 �[3mgit�[0m�[2m=�[0m2 �[3mproject�[0m�[2m=�[0m0 �[3mproject�[0m�[2m=�[0m0 �[3mgit_dedup�[0m�[2m=�[0m2 �[3mgit_dedup�[0m�[2m=�[0m2
2024-04-19T18:57:25.960700Z  INFO handle: crates\gitbutler-watcher\src\handler.rs:73: new �[3mevent�[0m�[2m=�[0mGitFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, logs\HEAD, index)
2024-04-19T18:57:25.961108Z  INFO handle: crates\gitbutler-watcher\src\handler.rs:73: close time.busy=396µs time.idle=17.7µs �[3mevent�[0m�[2m=�[0mGitFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, logs\HEAD, index)
2024-04-19T18:57:25.974649Z  INFO handle:recalculate_everything:calculate_virtual_branches: crates\gitbutler-watcher\src\handler.rs:172: close time.busy=153ms time.idle=21.3µs �[3mevent�[0m�[2m=�[0mProjectFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, backend\app\adapters\filesystem.py, backend\app\adapters) �[3mpaths�[0m�[2m=�[0m2
2024-04-19T18:57:25.974660Z  INFO handle:recalculate_everything: crates\gitbutler-watcher\src\handler.rs:287: close time.busy=153ms time.idle=9.60µs �[3mevent�[0m�[2m=�[0mProjectFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, backend\app\adapters\filesystem.py, backend\app\adapters) �[3mpaths�[0m�[2m=�[0m2
2024-04-19T18:57:25.974679Z ERROR handle: crates\gitbutler-watcher\src\handler.rs:73: error=failed to get file content

Caused by:
    io error: Access is denied. (os error 5) �[3mevent�[0m�[2m=�[0mProjectFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, backend\app\adapters\filesystem.py, backend\app\adapters)
2024-04-19T18:57:25.974685Z  INFO handle: crates\gitbutler-watcher\src\handler.rs:73: close time.busy=153ms time.idle=22.0µs �[3mevent�[0m�[2m=�[0mProjectFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, backend\app\adapters\filesystem.py, backend\app\adapters)
2024-04-19T18:57:25.978480Z  INFO can_apply_virtual_branch: crates\gitbutler-tauri\src\virtual_branches.rs:290: new �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mbranch_id�[0m�[2m=�[0m82fc9571-c29f-4a7d-bd1b-c644134034c4
2024-04-19T18:57:25.978487Z  INFO can_apply_virtual_branch: crates\gitbutler-tauri\src\virtual_branches.rs:290: new �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mbranch_id�[0m�[2m=�[0m2e275aa0-1e16-4b15-a241-4f159ef2eb15
2024-04-19T18:57:25.978517Z  INFO can_apply_virtual_branch: crates\gitbutler-tauri\src\virtual_branches.rs:290: new �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mbranch_id�[0m�[2m=�[0mfd7ab312-71ae-40ab-bcb1-93ceba44d129
2024-04-19T18:57:25.978535Z  INFO can_apply_virtual_branch: crates\gitbutler-tauri\src\virtual_branches.rs:290: new �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mbranch_id�[0m�[2m=�[0m8f8137df-d046-4d63-b7ce-c304c708c15d
2024-04-19T18:57:25.978551Z  INFO can_apply_virtual_branch: crates\gitbutler-tauri\src\virtual_branches.rs:290: new �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mbranch_id�[0m�[2m=�[0me2091767-34d4-4403-916a-94caf37b4eb8
2024-04-19T18:57:25.984450Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: new �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9
2024-04-19T18:57:25.985730Z  INFO can_apply_virtual_branch: crates\gitbutler-tauri\src\virtual_branches.rs:290: close time.busy=7.23ms time.idle=20.8µs �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mbranch_id�[0m�[2m=�[0m2e275aa0-1e16-4b15-a241-4f159ef2eb15
2024-04-19T18:57:25.987002Z  INFO set_project_active:watch:file monitor:handle debounced events: crates\gitbutler-watcher\src\file_monitor.rs:77: close time.busy=2.52ms time.idle=37.3µs �[3mid�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mfs_events�[0m�[2m=�[0m13 �[3mfs_events�[0m�[2m=�[0m13 �[3mignored�[0m�[2m=�[0m0 �[3mignored�[0m�[2m=�[0m0 �[3mgit_noop�[0m�[2m=�[0m12 �[3mgit_noop�[0m�[2m=�[0m12 �[3mgit�[0m�[2m=�[0m1 �[3mgit�[0m�[2m=�[0m1 �[3mproject�[0m�[2m=�[0m0 �[3mproject�[0m�[2m=�[0m0 �[3mgit_dedup�[0m�[2m=�[0m1 �[3mgit_dedup�[0m�[2m=�[0m1
2024-04-19T18:57:25.987056Z  INFO handle: crates\gitbutler-watcher\src\handler.rs:73: new �[3mevent�[0m�[2m=�[0mGitFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, index)
2024-04-19T18:57:25.987838Z  INFO can_apply_virtual_branch: crates\gitbutler-tauri\src\virtual_branches.rs:290: close time.busy=9.34ms time.idle=31.2µs �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mbranch_id�[0m�[2m=�[0m82fc9571-c29f-4a7d-bd1b-c644134034c4
2024-04-19T18:57:25.987875Z  INFO handle: crates\gitbutler-watcher\src\handler.rs:73: close time.busy=802µs time.idle=22.5µs �[3mevent�[0m�[2m=�[0mGitFileChange(6d2a9edb-768a-4d6c-b165-31ace816c5a9, index)
2024-04-19T18:57:25.992516Z  INFO can_apply_virtual_branch: crates\gitbutler-tauri\src\virtual_branches.rs:290: close time.busy=4.67ms time.idle=9.34ms �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mbranch_id�[0m�[2m=�[0mfd7ab312-71ae-40ab-bcb1-93ceba44d129
2024-04-19T18:57:25.999472Z  INFO can_apply_virtual_branch: crates\gitbutler-tauri\src\virtual_branches.rs:290: close time.busy=6.93ms time.idle=14.0ms �[3mproject_id�[0m�[2m=�[0m6d2a9edb-768a-4d6c-b165-31ace816c5a9 �[3mbranch_id�[0m�[2m=�[0m8f8137df-d046-4d63-b7ce-c304c708c15d

In this example, filesystem.py was deleted and no longer exists on the disk.

There might actually be two issues here. I think the ERROR set_base_branch: crates\gitbutler-tauri\src\virtual_branches.rs:138: error=Error(failed to checkout tree call is destructively removing changed files before erroring and not putting them back. But I'm also not sure where the Access is denied error is coming from in the first place.

I've also experienced this same issue when unapplying branches, updating the workspace, and switching back to gitbutler (after checking out the main branch elsewhere)

@Byron
Copy link
Collaborator

Byron commented Apr 19, 2024

Thanks so much for reporting! I am also very sorry to see that files were deleted, and hope that these docs on data recovery with GitButler can help getting them back.
Unfortunately, I don't know much about how virtual branches are applied, and can't even theorise about possible causes for the data-loss described here.

But, having recently worked on the watcher part I can say that the theory of GB causing this itself seems likely.

After all, when files are changed, it will recalculate a lot of things and read files in the process. This happens in parallel to the ongoing changes in the working tree, preventing the removal of files.

In theory, filesystem events should be bundled into 100ms time-slices, but judging from the log this doesn't really happen here as these events are apparently more frequent than that. But even if it would work, then the changing operation could still not take longer than 100ms, or else the recalculation would already kick in. And even if this window would be larger than 100ms, there is always a chance that a change takes longer than that.

The only way to truly prevent 'stepping onto ones feet' is to assure reads are never interleaved with writes, something that cannot currently be done but of course is possible.

@slingshotvfx
Copy link
Author

slingshotvfx commented Apr 19, 2024

@Byron thanks for the link, fortunately I've not lost anything unrecoverable so far but I wasn't aware of that data recovery documentation which I'm sure will come in handy.

I'm not a rust guy but I'm happy to test future fixes or help in anyway I can.

Here's another person on discord with (possibly) the same issue causing problems with changes being locked:
https://discord.com/channels/1060193121130000425/1206670506271707156/1230554414511689830

@Byron Byron added bug Something isn't working os:windows The Windows platform labels Apr 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working os:windows The Windows platform
Projects
None yet
Development

No branches or pull requests

2 participants