gitui-org / gitui-org/gitui

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

Offen
#2,900 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug
Vorherrschende Sprache
Rust
Sterne
22.5k
Forks
773
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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`).

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Start by reading src/watcher.rs around line 79 and reproduce the issue with gitui --watcher using the directory ownership steps and logging command in the report. Trace how the permission-denied watch error is handled; done means GitUI opens normally instead of panicking when it encounters an inaccessible directory.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rust
Bereich
cli, operating-systems
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
66/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.