Skip to content

Commit f96820d

Browse files
committed
Add analysis for bug #6
Signed-off-by: Babis Chalios <babis.chalios@e2b.dev>
1 parent 4be8217 commit f96820d

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

docs/async-io-snapshot-analysis.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,12 @@ AFAICT, `Error::from_os_error` [expects a `RawOsError`](https://doc.rust-lang.or
6767

6868
If `pop_or_enable_notification` returns `Err(InvalidAvailIdx)`, the function exits via `?` *before* `kick_submission_queue` is called; any SQEs already pushed in this call sit in the SQ until the next `process_queue` invocation. Separately, `kick_submission_queue` itself issues `io_uring_enter` with no `EINTR` retry — same flavor as Bug 4 but in the steady-state path. Low severity because `InvalidAvailIdx` shouldn't happen with a non-malicious guest; defense-in-depth only.
6969

70+
#### Analysis
71+
72+
Re `pop_or_enable_notification`: `InvalidAvailIdx` is a hard error for Firecracker. If `InvalidAvailIdx` ever returns `pop_or_enable_notification` Firecracker will crash. This is expected as this error signifies a malicious/buggy guest.
73+
74+
Re `kick_submission_queue` calls `squeue::submit()` with `min_complete == 0` (it doesn't block at all). According to the man page this shouldn't enable `IORING_ENTER_GETEVENTS` so this should never return an `EINTR`
75+
7076
---
7177

7278
### Bug 7 — irqfd injection race with KVM state save [C/M]

0 commit comments

Comments
 (0)