Skip to content

Crash on set_pose when included model (via <include>) has no link element #2981

@XINJIANGMO

Description

@XINJIANGMO

Environment

  • OS Version: Ubuntu24.04
  • Source or binary build?
    Source, gz-sim9 ,gz-physics8

Description

  • Expected behavior: after I load a model via <include>, if the model has not link , gazebo should refuse to load it and exit.
  • Actual behavior: gazebo crashed

Steps to reproduce

  1. gz sim crash_test.txt
  2. call the service below
gz service --timeout 10000 -s /world/crash_test/set_pose --reptype gz.msgs.Boolean --reqtype gz.msgs.Pose --req 'name: "nolink"
position {
  x: -1.4361019855344725
  y: -2.2383224928765966
  z: 9.780118492347626
}
'

Output

From the point of view of the process, the model imported through include bypasses the validity check of the model(at least one link)

terminate called after throwing an instance of 'std::out_of_range'
  what():  unordered_map::at
Stack trace (most recent call last):
#31   Object "/lib/x86_64-linux-gnu/libffi.so.8", at 0x7a4b1d6fa0bd, in ffi_call
#30   Object "/lib/x86_64-linux-gnu/libffi.so.8", at 0x7a4b1d6f73ee, in 
#29   Object "/lib/x86_64-linux-gnu/libffi.so.8", at 0x7a4b1d6fab15, in 
#28   Object "/home/momo/w_s/install/lib/libgz-sim9-gz.so.9.3.0", at 0x7a4b19d0ba03, in runServer
#27   Object "/home/momo/w_s/install/lib/libgz-sim9.so.9", at 0x7a4b1642467f, in gz::sim::v9::Server::Run(bool, unsigned long, bool)
#26   Object "/home/momo/w_s/install/lib/libgz-sim9.so.9", at 0x7a4b164918a0, in 
#25   Object "/home/momo/w_s/install/lib/libgz-sim9.so.9", at 0x7a4b164cb21b, in gz::sim::v9::SimulationRunner::Run(unsigned long)
#24   Object "/home/momo/w_s/install/lib/libgz-sim9.so.9", at 0x7a4b164cc220, in gz::sim::v9::SimulationRunner::Step(gz::sim::v9::UpdateInfo const&)
#23   Object "/home/momo/w_s/install/lib/libgz-sim9.so.9", at 0x7a4b164c86dc, in gz::sim::v9::SimulationRunner::UpdateSystems()
#22   Object "/home/momo/w_s/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x7a4ad0d3d639, in 
#21   Object "/home/momo/w_s/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x7a4ad0d595d0, in 
#20   Object "/home/momo/w_s/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x7a4ad0e1b3b6, in void gz::sim::v9::EntityComponentManager::Each<gz::sim::v9::components::Component<std::add_lvalue_reference<void>, gz::sim::v9::components::ModelTag, gz::sim::v9::serializers::DefaultSerializer<std::add_lvalue_reference<void> > >, gz::sim::v9::components::Component<gz::math::v8::Pose3<double>, gz::sim::v9::components::WorldPoseCmdTag, gz::sim::v9::serializers::DefaultSerializer<gz::math::v8::Pose3<double> > > >(gz::sim::v9::EntityComponentManager::identity<std::function<bool (unsigned long const&, gz::sim::v9::components::Component<std::add_lvalue_reference<void>, gz::sim::v9::components::ModelTag, gz::sim::v9::serializers::DefaultSerializer<std::add_lvalue_reference<void> > >*, gz::sim::v9::components::Component<gz::math::v8::Pose3<double>, gz::sim::v9::components::WorldPoseCmdTag, gz::sim::v9::serializers::DefaultSerializer<gz::math::v8::Pose3<double> > >*)> >::type)
#19   Object "/home/momo/w_s/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x7a4ad0e6f892, in 
#18   Object "/home/momo/w_s/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x7a4ad0ef5fc0, in 
#17   Object "/home/momo/w_s/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x7a4ad0f510f1, in 
#16   Object "/home/momo/w_s/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x7a4ad0d76410, in 
#15   Object "/home/momo/w_s/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x7a4ad0d81617, in 
#14   Object "/home/momo/w_s/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x7a4ad0d9004b, in 
#13   Object "/home/momo/w_s/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x7a4ad0d540b8, in 
#12   Object "/home/momo/w_s/install/lib/gz-sim-9/plugins/libgz-sim-physics-system.so", at 0x7a4ad0e1ad1a, in gz::physics::FindFreeGroupFeature::FreeGroup<gz::physics::FeaturePolicy<double, 3ul>, gz::sim::v9::systems::PhysicsPrivate::MinimumFeatureList>::RootLink()
#11   Object "/home/momo/w_s/install/lib/gz-physics-8/engine-plugins/libgz-physics-dartsim-plugin.so", at 0x7a4acb75d29c, in 
#10   Object "/home/momo/w_s/install/lib/gz-physics-8/engine-plugins/libgz-physics-dartsim-plugin.so", at 0x7a4acb71912e, in 
#9    Object "/home/momo/w_s/install/lib/gz-physics-8/engine-plugins/libgz-physics-dartsim-plugin.so", at 0x7a4acb72013e, in 
#8    Object "/home/momo/w_s/install/lib/gz-physics-8/engine-plugins/libgz-physics-dartsim-plugin.so", at 0x7a4acb72b035, in 
#7    Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7a4b184a932c, in std::__throw_out_of_range(char const*)
#6    Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7a4b184bb390, in __cxa_throw
#5    Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7a4b184a5a54, in std::terminate()
#4    Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7a4b184bb0d9, in 
#3    Object "/lib/x86_64-linux-gnu/libstdc++.so.6", at 0x7a4b184a5ff4, in 
#2    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7a4b1d8288fe, in abort
#1    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7a4b1d84527d, in gsignal
#0    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7a4b1d89eb2c, in pthread_kill
Aborted (Signal sent by tkill() 1358541 1000)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions