gitui-org / gitui-org/gitui

GitUI was close due to an unexpected panic (file: "src/watcher.rs")

Open
#2,900 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Rust
Stars
22.5k
Forks
773
PR merge metrics
No merged PRs in 30d

Description

Using `gitui --watcher` causes "GitUI was closed due to an unexpected panic" when a **directory** belongs to another user.
This happens exclusively when a **directory** has a different owner. The error does NOT occur with files owned by another user.

## Steps to reproduce:
1. `mkdir projectX && cd projectX`
2. Create a directory with a different owner using one of these options:
- Option A:
`sudo install -m 700 -o 65654 -g 65654 -d mydir`
- Option B (the real-world case):
`podman run --rm -v "$(pwd):/workdir" alpine:latest /bin/sh -c 'mkdir /workdir/test && chown 1000:1000 /workdir/test && chmod 700 /workdir/test'`
3. Start gitui with the watcher and logs: `RUST_BACKTRACE=1 RUST_LOG=debug gitui --watcher 2>/tmp/gitui.log`

## Expected behavior
GitUI should open normally.

## Logs
```
❯ cat -pp /tmp/gitui.log

GitUI was closed due to an unexpected panic.
Please file an issue on https://github.com/gitui-org/gitui/issues with the following info:

panicked at src/watcher.rs:79:10:
Watch error: Error { kind: Io(Os { code: 13, kind: PermissionDenied, message: "Permission denied" }), paths: ["/home/user/gitui-test/mydir"] }

trace:
0:
1:
2:
3:
4:
5:
6:
7:
8:
9:

Error: receiving on an empty and disconnected channel

Stack backtrace:
0:
1:
2:
3:
```

**Context:**
- OS/Distro + Version: Ubuntu 24.04 LTS
- GitUI Version: gitui 0.28.1

**Additional context**
- Possibly related: #2710 #2488
- Adding the directory to `.git/info/exclude` does not prevent the error; it still occurs. (`echo -e 'mydir\ntest' >> .git/info/exclude`).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.