-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Open
Labels
A-tokioArea: The main tokio crateArea: The main tokio crateC-bugCategory: This is a bug.Category: This is a bug.M-processModule: tokio/processModule: tokio/process
Description
Version
TL;DR: 1.42.0
cargo tree
❯ cargo tree | grep tokio
└── tokio v1.42.0
└── tokio-macros v2.4.0 (proc-macro)
│ │ │ └── tokio v1.42.0 (*)
│ │ └── tokio v1.42.0 (*)
│ │ ├── tokio v1.42.0 (*)
│ │ │ │ ├── tokio v1.42.0 (*)
│ │ │ │ ├── tokio-util v0.7.11
│ │ │ │ │ └── tokio v1.42.0 (*)
│ │ │ ├── tokio v1.42.0 (*)
│ │ ├── tokio v1.42.0 (*)
│ │ ├── tokio v1.42.0 (*)
│ │ │ ├── tokio v1.42.0 (*)
│ │ │ ├── tokio-util v0.7.11 (*)
│ │ ├── tokio v1.42.0 (*)
│ │ │ └── tokio v1.42.0 (*)
│ │ └── tokio v1.42.0 (*)
│ ├── tokio v1.42.0 (*)
│ ├── tokio-stream v0.1.15
│ │ ├── tokio v1.42.0 (*)
│ │ └── tokio-util v0.7.11 (*)
│ ├── tokio-util v0.7.11 (*)
│ ├── tokio-vsock v0.5.0
│ │ ├── tokio v1.42.0 (*)
│ ├── tokio v1.42.0 (*)
│ ├── tokio-tungstenite v0.21.0
│ │ ├── tokio v1.42.0 (*)
│ ├── tokio-util v0.7.11 (*)
├── tokio v1.42.0 (*)
├── tokio-vsock v0.5.0 (*)
│ ├── tokio v1.42.0 (*)
│ └── tokio v1.42.0 (*)
│ │ ├── tokio v1.42.0 (*)
│ │ ├── tokio-rustls v0.25.0
│ │ │ └── tokio v1.42.0 (*)
│ ├── tokio v1.42.0 (*)
│ ├── tokio-stream v0.1.15 (*)
│ ├── tokio-util v0.7.11 (*)
│ ├── tokio-vsock v0.5.0 (*)
├── tokio v1.42.0 (*)
├── tokio-stream v0.1.15 (*)
├── tokio-util v0.7.11 (*)
├── tokio-vsock v0.5.0 (*)
│ ├── tokio v1.42.0 (*)
│ ├── tokio v1.42.0 (*)
│ ├── tokio-util v0.7.11 (*)
│ │ │ │ ├── tokio v1.42.0 (*)
│ │ │ │ └── tokio-io-timeout v1.2.0
│ │ │ │ └── tokio v1.42.0 (*)
│ │ │ ├── tokio v1.42.0 (*)
│ │ │ ├── tokio-stream v0.1.15 (*)
│ │ │ ├── tokio v1.42.0 (*)
│ │ ├── tokio v1.42.0 (*)
│ │ ├── tokio-util v0.7.11 (*)
│ │ │ └── tokio v1.42.0 (*)
│ │ ├── tokio v1.42.0 (*)
│ │ ├── tokio-stream v0.1.15 (*)
│ ├── tokio v1.42.0 (*)
│ ├── tokio-fd v0.3.0
│ │ └── tokio v1.42.0 (*)
│ ├── tokio-stream v0.1.15 (*)
│ ├── tokio-tar v0.3.1
│ │ ├── tokio v1.42.0 (*)
│ │ ├── tokio-stream v0.1.15 (*)
│ ├── tokio-util v0.7.11 (*)
│ ├── tokio-vsock v0.5.0 (*)
│ │ ├── tokio v1.42.0 (*)
│ │ └── tokio-util v0.7.11 (*)
├── tokio v1.42.0 (*)
├── tokio-util v0.7.11 (*)
Platform
Linux version 5.15.98
Description
I'm launching crun run ...
commands with tokio::process::Command
and using Child::wait
.
stack backtrace:
0: rust_begin_unwind
at ./rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:662:5
1: core::panicking::panic_fmt
at ./rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/panicking.rs:74:14
2: core::panicking::panic_display
at ./rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/panicking.rs:264:5
3: core::option::expect_failed
at ./rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/option.rs:2025:5
4: core::option::Option<T>::expect
at ./rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/option.rs:928:21
5: <tokio::process::imp::pidfd_reaper::PidfdReaperInner<W> as core::future::future::Future>::poll
at ./usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.42.0/src/process/unix/pidfd_reaper.rs:127:24
6: <tokio::process::imp::pidfd_reaper::PidfdReaper<W,Q> as core::future::future::Future>::poll
at ./usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.42.0/src/process/unix/pidfd_reaper.rs:188:9
7: <tokio::process::imp::Child as core::future::future::Future>::poll
at ./usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.42.0/src/process/unix/mod.rs:183:48
8: <tokio::process::ChildDropGuard<F> as core::future::future::Future>::poll
at ./usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.42.0/src/process/mod.rs:1023:19
9: <&mut F as core::future::future::Future>::poll
at ./rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/future/future.rs:111:9
10: tokio::process::Child::wait::{{closure}}
at ./usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.42.0/src/process/mod.rs:1223:33
# ...
I am using a FutureMap
(implementation) and spawning children on it like:
self.reaper.insert(name.clone(), Box::pin(async move { child.wait().await }));
Then I'm polling it in tokio::select!
.
Is it because my FutureMap
is not cancel safe?
sdebruyn
Metadata
Metadata
Assignees
Labels
A-tokioArea: The main tokio crateArea: The main tokio crateC-bugCategory: This is a bug.Category: This is a bug.M-processModule: tokio/processModule: tokio/process