Skip to content

bevy_animation::animate_targets crashes with "subtract with overflow" if there is an empty curve on AnimationClip #14766

Closed
@hukasu

Description

@hukasu

Bevy version

0.14.1

[Optional] Relevant system information

SystemInfo { os: "Linux 24.05 NixOS", kernel: "6.6.45", cpu: "Intel(R) Core(TM) i7-14700KF", core_count: "20", memory: "31.2 GiB" }
AdapterInfo { name: "NVIDIA GeForce RTX 4060 Ti", vendor: 4318, device: 10243, device_type: DiscreteGpu, driver: "NVIDIA", driver_info: "550.78", backend: Vulkan }

What you did

Created an AnimationClip and added a curve to it with empty keyframe_timestamps and keyframes and attempted to play the clip.

What went wrong

Application crashed with "attempted to subtract with overflow", preferably it should warn that the VariableCurve was created with empty keyframe_timestamps and keyframes over crashing.

Additional information

Crash log, a bit mangled because there is multiple errors being printed in parallel

thread 'thread 'thread 'thread 'Compute Task Pool (16)Compute Task Pool (14)Compute Task Pool (15)Compute Task Pool (12)' panicked at ' panicked at ' panicked at ' panicked at /home/hukasu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_animation-0.14.1/src/lib.rsthread 'thread '/home/hukasu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_animation-0.14.1/src/lib.rs/home/hukasu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_animation-0.14.1/src/lib.rs/home/hukasu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_animation-0.14.1/src/lib.rs:Compute Task Pool (18)Compute Task Pool (10):::131thread '' panicked at Compute Task Pool (9)' panicked at 131131131:/home/hukasu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_animation-0.14.1/src/lib.rs' panicked at /home/hukasu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_animation-0.14.1/src/lib.rs:::/home/hukasu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_animation-0.14.1/src/lib.rs:292929:131:
:
:
:131:attempt to subtract with overflow29131attempt to subtract with overflowattempt to subtract with overflow29:
:
:

29note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
:
attempt to subtract with overflow29:
attempt to subtract with overflow
:
attempt to subtract with overflow
attempt to subtract with overflow

Encountered a panic in system `bevy_animation::animate_targets`!
Encountered a panic in system `bevy_app::main_schedule::Main::run_main`!
thread '<unnamed>' panicked at /rustc/3f5fd8dd41153bc5fdca9427e9e05be2c767ba23/library/std/src/thread/local.rs:260:26:
cannot access a Thread Local Storage value during or after destruction: AccessError
fatal runtime error: failed to initiate panic, error 5
Aborted (core dumped)

Screenshot_20240815_162609

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-AnimationMake things move and change over timeC-BugAn unexpected or incorrect behaviorP-CrashA sudden unexpected crashS-Waiting-on-AuthorThe author needs to make changes or address concerns before this can be merged

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions