Skip to content

unwrap() failed in bevy_tasks/src/single_threaded_task_pool.rs:178 #19952

@kpreid

Description

@kpreid

Bevy version

bd5f924

What you did

Updated some headless rendering code from 0.16 to git, hoping to pick up the recent wgpu 25 update. It panicked instead. Somewhat minimized repro:

[package]
name = "bevy-bug"
version = "0.1.0"
edition = "2024"

[dependencies]
bevy = { git = "https://github.com/bevyengine/bevy", rev = "bd5f924290a2bb00a228405ecaefba520a50cffb", version = "0.17.0-dev", default-features = false, features = ["bevy_core_pipeline", "bevy_render", "bevy_scene", "bevy_window", "dynamic_linking"] }
use bevy::prelude as b;

fn main() {
    let mut app = b::App::new();
    app.add_plugins((
        b::MinimalPlugins,
        b::AssetPlugin::default(),
        bevy::render::RenderPlugin::default(),
        bevy::render::pipelined_rendering::PipelinedRenderingPlugin::default(),
    ));

    app.finish();
    app.cleanup();
    std::thread::sleep(std::time::Duration::from_millis(100));
}

What went wrong

thread '<unnamed>' panicked at /Users/kpreid/.cargo/git/checkouts/bevy-50d7e162b728c6c6/bd5f924/crates/bevy_tasks/src/single_threaded_task_pool.rs:178:51:
called `Option::unwrap()` on a `None` value
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::panicking::panic
   3: core::option::unwrap_failed
   4: core::option::Option<T>::unwrap
             at /Users/kpreid/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/option.rs:1003:21
   5: bevy_tasks::single_threaded_task_pool::TaskPool::scope_with_executor::{{closure}}
             at /Users/kpreid/.cargo/git/checkouts/bevy-50d7e162b728c6c6/bd5f924/crates/bevy_tasks/src/single_threaded_task_pool.rs:178:24
   6: core::iter::adapters::map::map_fold::{{closure}}
             at /Users/kpreid/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:88:28
   7: <core::slice::iter::Iter<T> as core::iter::traits::iterator::Iterator>::fold
             at /Users/kpreid/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:255:27
   8: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
             at /Users/kpreid/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/iter/adapters/map.rs:128:9
   9: core::iter::traits::iterator::Iterator::for_each
             at /Users/kpreid/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:801:9
  10: alloc::vec::Vec<T,A>::extend_trusted
             at /Users/kpreid/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3579:17
  11: <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend
             at /Users/kpreid/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/vec/spec_extend.rs:29:9
  12: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter
             at /Users/kpreid/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter_nested.rs:62:9
  13: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
             at /Users/kpreid/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/vec/spec_from_iter.rs:34:9
  14: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter
             at /Users/kpreid/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3438:9
  15: core::iter::traits::iterator::Iterator::collect
             at /Users/kpreid/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:2001:9
  16: bevy_tasks::single_threaded_task_pool::TaskPool::scope_with_executor
             at /Users/kpreid/.cargo/git/checkouts/bevy-50d7e162b728c6c6/bd5f924/crates/bevy_tasks/src/single_threaded_task_pool.rs:174:9
  17: bevy_tasks::single_threaded_task_pool::TaskPool::scope
             at /Users/kpreid/.cargo/git/checkouts/bevy-50d7e162b728c6c6/bd5f924/crates/bevy_tasks/src/single_threaded_task_pool.rs:123:9
  18: <bevy_render::pipelined_rendering::PipelinedRenderingPlugin as bevy_app::plugin::Plugin>::cleanup::{{closure}}
             at /Users/kpreid/.cargo/git/checkouts/bevy-50d7e162b728c6c6/bd5f924/crates/bevy_render/src/pipelined_rendering.rs:156:32

This panic should at least be changed to be informative about what I might be missing, if it’s not an actual bug.

return result.borrow_mut().take().unwrap();

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-TasksTools for parallel and async workC-BugAn unexpected or incorrect behaviorP-CrashA sudden unexpected crash

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions