bevy/crates
Brian Reavis 795e273a9a
Don't create errors for ignored failed commands (#19718)
# Objective

1. Reduce overhead from error handling for ECS commands that
intentionally ignore errors, such as `try_despawn`. These commands
currently allocate error objects and pass them to a no-op handler
(`ignore`), which can impact performance when many operations fail.

2. Fix a hang when removing `ChildOf` components during entity
despawning. Excessive logging of these failures can cause significant
hangs (I'm noticing around 100ms).
    - Fixes https://github.com/bevyengine/bevy/issues/19777
    - Fixes https://github.com/bevyengine/bevy/issues/19753

<img width="1387" alt="image"
src="https://github.com/user-attachments/assets/5c67ab77-97bb-46e5-b287-2c502bef9358"
/>


## Solution

* Added a `ignore_error` method to the `HandleError` trait to use
instead of `handle_error_with(ignore)`. It swallows errors and does not
create error objects.
* Replaced `remove::<ChildOf>` with `try_remove::<ChildOf>` to suppress
expected (?) errors and reduce log noise.

## Testing

- I ran these changes on a local project.
2025-06-29 16:34:20 +00:00
..
bevy_a11y Bump Version after Release (#19774) 2025-06-22 23:06:43 +00:00
bevy_animation Update derive_more requirement from 1 to 2 (#19671) 2025-06-24 11:13:04 +00:00
bevy_anti_aliasing Add UVec to_extents helper method (#19807) 2025-06-26 20:53:49 +00:00
bevy_app Upgrade to Rust 1.88 (#19825) 2025-06-26 19:38:19 +00:00
bevy_asset Upgrade to Rust 1.88 (#19825) 2025-06-26 19:38:19 +00:00
bevy_audio Upgrade to Rust 1.88 (#19825) 2025-06-26 19:38:19 +00:00
bevy_color Ugrade to wgpu version 25.0 (#19563) 2025-06-26 19:41:47 +00:00
bevy_core_pipeline Resolution override (#19817) 2025-06-27 16:30:54 +00:00
bevy_core_widgets Bevy Feathers: an opinionated widget toolkit for building Bevy tooling (#19730) 2025-06-28 19:52:13 +00:00
bevy_derive Bump Version after Release (#19774) 2025-06-22 23:06:43 +00:00
bevy_dev_tools Upgrade to Rust 1.88 (#19825) 2025-06-26 19:38:19 +00:00
bevy_diagnostic updating: very very minorly (#19827) 2025-06-26 21:48:20 +00:00
bevy_dylib Bump Version after Release (#19774) 2025-06-22 23:06:43 +00:00
bevy_ecs Don't create errors for ignored failed commands (#19718) 2025-06-29 16:34:20 +00:00
bevy_encase_derive Bump Version after Release (#19774) 2025-06-22 23:06:43 +00:00
bevy_feathers Bevy Feathers: an opinionated widget toolkit for building Bevy tooling (#19730) 2025-06-28 19:52:13 +00:00
bevy_gilrs Add newlines before impl blocks (#19746) 2025-06-22 23:07:02 +00:00
bevy_gizmos Type erased materials (#19667) 2025-06-27 22:57:24 +00:00
bevy_gltf Nudge users into migrating to new default glTF coordinate conversion (#19816) 2025-06-28 18:35:41 +00:00
bevy_image use wgpu TextureDataOrder (#19829) 2025-06-27 06:57:29 +00:00
bevy_input Upgrade to Rust 1.88 (#19825) 2025-06-26 19:38:19 +00:00
bevy_input_focus Upgrade to Rust 1.88 (#19825) 2025-06-26 19:38:19 +00:00
bevy_internal Bevy Feathers: an opinionated widget toolkit for building Bevy tooling (#19730) 2025-06-28 19:52:13 +00:00
bevy_log Upgrade to Rust 1.88 (#19825) 2025-06-26 19:38:19 +00:00
bevy_macro_utils Bump Version after Release (#19774) 2025-06-22 23:06:43 +00:00
bevy_math Upgrade to Rust 1.88 (#19825) 2025-06-26 19:38:19 +00:00
bevy_mesh Ugrade to wgpu version 25.0 (#19563) 2025-06-26 19:41:47 +00:00
bevy_mikktspace Bump Version after Release (#19774) 2025-06-22 23:06:43 +00:00
bevy_pbr Meshlet BVH Culling (#19318) 2025-06-29 00:04:21 +00:00
bevy_picking Upstream raycasting UVs (#19791) 2025-06-24 18:10:59 +00:00
bevy_platform Bump Version after Release (#19774) 2025-06-22 23:06:43 +00:00
bevy_ptr Add newlines before impl blocks (#19746) 2025-06-22 23:07:02 +00:00
bevy_reflect Ugrade to wgpu version 25.0 (#19563) 2025-06-26 19:41:47 +00:00
bevy_remote Upgrade to Rust 1.88 (#19825) 2025-06-26 19:38:19 +00:00
bevy_render Type erased materials (#19667) 2025-06-27 22:57:24 +00:00
bevy_scene Upgrade to Rust 1.88 (#19825) 2025-06-26 19:38:19 +00:00
bevy_solari Add UVec to_extents helper method (#19807) 2025-06-26 20:53:49 +00:00
bevy_sprite Type erased materials (#19667) 2025-06-27 22:57:24 +00:00
bevy_state Upgrade to Rust 1.88 (#19825) 2025-06-26 19:38:19 +00:00
bevy_tasks Update derive_more requirement from 1 to 2 (#19671) 2025-06-24 11:13:04 +00:00
bevy_text Bevy Feathers: an opinionated widget toolkit for building Bevy tooling (#19730) 2025-06-28 19:52:13 +00:00
bevy_time Bump Version after Release (#19774) 2025-06-22 23:06:43 +00:00
bevy_transform Update derive_more requirement from 1 to 2 (#19671) 2025-06-24 11:13:04 +00:00
bevy_ui Type erased materials (#19667) 2025-06-27 22:57:24 +00:00
bevy_utils Make DebugName work when building with no default features (#19824) 2025-06-29 02:45:41 +00:00
bevy_window Doc for X11 CursorGrabMode support (#19811) 2025-06-28 18:54:21 +00:00
bevy_winit Ugrade to wgpu version 25.0 (#19563) 2025-06-26 19:41:47 +00:00