mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-24 13:16:28 +00:00
d608e320f7
Standalone-workspace prototype proving the buffer-ownership model P2 requires before any production io_uring work: buffer and fd are owned by the driver's pending table from SQE submission to CQE, dropping the future never reclaims the buffer, IORING_OP_ASYNC_CANCEL only accelerates the CQE, and shutdown drains to in_flight == 0 before the ring is unmapped. Deliberately excluded from the rustfs workspace (own [workspace] table): P2 stays deferred per the P1.5 NO-GO gate, so io-uring must not enter the main Cargo.lock. Verified via run-docker.sh on a real Linux kernel: default-seccomp leg degrades gracefully (EPERM probe, the #4313 environment), unconfined leg passes all five cancel-safety tests. Co-Authored-By: heihutu <heihutu@gmail.com>
21 lines
661 B
TOML
21 lines
661 B
TOML
[package]
|
|
name = "io-uring-cancel-spike"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
publish = false
|
|
description = "Spike 0 for backlog#894 (P2 io_uring read backend): cancel-safety / buffer-ownership prototype. NOT production code."
|
|
|
|
# Deliberately a standalone workspace: P2 is deferred (P1.5 NO-GO), so the
|
|
# io-uring crate must not enter the main rustfs Cargo.lock or build graph.
|
|
[workspace]
|
|
|
|
[dependencies]
|
|
tokio = { version = "1", default-features = false, features = ["sync"] }
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
io-uring = "0.7"
|
|
libc = "0.2"
|
|
|
|
[dev-dependencies]
|
|
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "time"] }
|