cloudflare / cloudflare/quiche
quiche-client panics on EINTR
- Dominant language
- Rust
- Stars
- 11.8k
- Forks
- 1.1k
- Avg merge
- 21h 9m
- Merged PRs (30d)
- 6
Description
```
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 4, kind: Interrupted, message: "Interrupted system call" }', /home/jnelson/work/quiche/apps/src/client.rs:213:52
stack backtrace:
0: rust_begin_unwind
at /rustc/ea92b08383b718e79317b29470cb244c48557cd5/library/std/src/panicking.rs:584:5
1: core::panicking::panic_fmt
at /rustc/ea92b08383b718e79317b29470cb244c48557cd5/library/core/src/panicking.rs:142:14
2: core::result::unwrap_failed
at /rustc/ea92b08383b718e79317b29470cb244c48557cd5/library/core/src/result.rs:1785:5
3: core::result::Result::unwrap
at /rustc/ea92b08383b718e79317b29470cb244c48557cd5/library/core/src/result.rs:1078:23
4: quiche_apps::client::connect
at /home/jnelson/work/quiche/apps/src/client.rs:213:13
5: quiche_client::main
at /home/jnelson/work/quiche/apps/src/bin/quiche-client.rs:43:11
6: core::ops::function::FnOnce::call_once
at /rustc/ea92b08383b718e79317b29470cb244c48557cd5/library/core/src/ops/function.rs:248:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
```
I think normally the right behavior is just to retry the system call?
https://github.com/cloudflare/quiche/blob/a7ab6dd0363b83b09039e166a5dae18fc75bec52/apps/src/client.rs#L213
Contributor guide
Research direction
Start in apps/src/client.rs at line 213, where quiche-client unwraps the system call result, and trace the call from quiche_apps::client::connect through quiche_client::main. Confirm the expected handling of an Interrupted error, then verify that quiche-client retries the system call instead of panicking when it receives EINTR.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli, networking
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 45/100