Skip to content

Coupled angular spring joints panic with index out of bounds: the len is 1 but the index is 18446744073709551615 #792

Description

@funmaker

Coupled angular spring joints seem to cause a panic.

Minimal reproduction: https://github.com/funmaker/rapier-issue-792

thread 'main' panicked at /home/funmaker/.cargo/git/checkouts/rapier-2268ac801e75c2bc/c4c549f/crates/rapier3d/../../src/dynamics/solver/joint_constraint/joint_velocity_constraint.rs:677:31:
index out of bounds: the len is 1 but the index is 18446744073709551615
stack backtrace:
   0: rust_begin_unwind
             at /rustc/1891c28669863bf7ed3ef8f43f2d3fa546f34861/library/std/src/panicking.rs:692:5
   1: core::panicking::panic_fmt
             at /rustc/1891c28669863bf7ed3ef8f43f2d3fa546f34861/library/core/src/panicking.rs:75:14
   2: core::panicking::panic_bounds_check
             at /rustc/1891c28669863bf7ed3ef8f43f2d3fa546f34861/library/core/src/panicking.rs:273:5
   3: rapier3d::dynamics::solver::joint_constraint::joint_velocity_constraint::JointOneBodyConstraint<f32,1_usize>::solve
             at /home/funmaker/.cargo/git/checkouts/rapier-2268ac801e75c2bc/c4c549f/crates/rapier3d/../../src/dynamics/solver/joint_constraint/joint_velocity_constraint.rs:677:31
   4: rapier3d::dynamics::solver::joint_constraint::any_joint_constraint::<impl rapier3d::dynamics::solver::solver_constraints_set::AnyConstraintMut<rapier3d::dynamics::solver::joint_constraint::any_joint_constraint::JointConstraintTypes>>::solve
             at /home/funmaker/.cargo/git/checkouts/rapier-2268ac801e75c2bc/c4c549f/crates/rapier3d/../../src/dynamics/solver/joint_constraint/any_joint_constraint.rs:51:33
   5: rapier3d::dynamics::solver::joint_constraint::joint_constraints_set::<impl rapier3d::dynamics::solver::solver_constraints_set::SolverConstraintsSet<rapier3d::dynamics::solver::joint_constraint::any_joint_constraint::JointConstraintTypes>>::solve
             at /home/funmaker/.cargo/git/checkouts/rapier-2268ac801e75c2bc/c4c549f/crates/rapier3d/../../src/dynamics/solver/joint_constraint/joint_constraints_set.rs:372:13
   6: rapier3d::dynamics::solver::velocity_solver::VelocitySolver::solve_constraints
             at /home/funmaker/.cargo/git/checkouts/rapier-2268ac801e75c2bc/c4c549f/crates/rapier3d/../../src/dynamics/solver/velocity_solver.rs:187:17
   7: rapier3d::dynamics::solver::island_solver::IslandSolver::init_and_solve
             at /home/funmaker/.cargo/git/checkouts/rapier-2268ac801e75c2bc/c4c549f/crates/rapier3d/../../src/dynamics/solver/island_solver.rs:82:9
   8: rapier3d::pipeline::physics_pipeline::PhysicsPipeline::build_islands_and_solve_velocity_constraints
             at /home/funmaker/.cargo/git/checkouts/rapier-2268ac801e75c2bc/c4c549f/crates/rapier3d/../../src/pipeline/physics_pipeline.rs:234:17
   9: rapier3d::pipeline::physics_pipeline::PhysicsPipeline::step
             at /home/funmaker/.cargo/git/checkouts/rapier-2268ac801e75c2bc/c4c549f/crates/rapier3d/../../src/pipeline/physics_pipeline.rs:583:13
  10: rapier_testbed3d::harness::Harness::step_with_graphics
             at /home/funmaker/.cargo/git/checkouts/rapier-2268ac801e75c2bc/c4c549f/crates/rapier_testbed3d/../../src_testbed/harness/mod.rs:235:9
  11: rapier_testbed3d::testbed::update_testbed
             at /home/funmaker/.cargo/git/checkouts/rapier-2268ac801e75c2bc/c4c549f/crates/rapier_testbed3d/../../src_testbed/testbed.rs:1484:17
  12: core::ops::function::FnMut::call_mut
             at /home/funmaker/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:166:5
  13: core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut
             at /home/funmaker/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:294:13
  14: <Func as bevy_ecs::system::function_system::SystemParamFunction<fn(F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13) .> Out>>::run::call_inner
             at /home/funmaker/.cargo/registry/src/github.com-25cdd57fae9f0462/bevy_ecs-0.15.1/src/system/function_system.rs:1002:21
  15: <Func as bevy_ecs::system::function_system::SystemParamFunction<fn(F0,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13) .> Out>>::run
             at /home/funmaker/.cargo/registry/src/github.com-25cdd57fae9f0462/bevy_ecs-0.15.1/src/system/function_system.rs:1005:17
  16: <bevy_ecs::system::function_system::FunctionSystem<Marker,F> as bevy_ecs::system::system::System>::run_unsafe
             at /home/funmaker/.cargo/registry/src/github.com-25cdd57fae9f0462/bevy_ecs-0.15.1/src/system/function_system.rs:800:19
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Encountered a panic in system `rapier_testbed3d::testbed::update_testbed`!
2025-01-26T22:29:35.650104Z  WARN bevy_ecs::world::command_queue: CommandQueue has un-applied commands being dropped. Did you forget to call SystemState::apply?
Encountered a panic in system `bevy_app::main_schedule::Main::run_main`!

Process finished with exit code 101

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions