Skip to content

[JTC] Segmentation fault with action tests #688

@christophfroehlich

Description

@christophfroehlich

Describe the bug
Included with #607, the action tests get activated again. But with the latest changes to the master branch, the tests fail with a segmentation fault.
Before the rebase from @bmagyar today everything was fine. Might this be a result of #682?

Locally I get the following stack trace:

4: [ RUN      ] OnlyEffortTrajectoryControllers/TestTrajectoryActionsTestParameterized.test_success_single_point_sendgoal/0
4: [INFO] [1687809125.124157051] [test_joint_trajectory_controller]: No specific joint names are used for command interfaces. Using 'joints' parameter.
4: [INFO] [1687809125.124258126] [test_joint_trajectory_controller]: Command interfaces are [effort] and state interfaces are [position velocity].
4: [INFO] [1687809125.124306425] [test_joint_trajectory_controller]: Using 'splines' interpolation method.
4: [INFO] [1687809125.125600011] [test_joint_trajectory_controller]: Action status changes will be monitored at 20.00 Hz.
4: [INFO] [1687809125.431236591] [test_joint_trajectory_controller]: Received new action goal
4: [INFO] [1687809125.431359484] [test_joint_trajectory_controller]: Accepted new action goal
4: [INFO] [1687809125.931574512] [test_joint_trajectory_controller]: Goal reached, success!
4: Stack trace (most recent call last) in thread 78980:
4: #6    Object "", at 0xffffffffffffffff, in 
4: #5    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7f867bb059ff, in 
4: #4    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7f867ba73b42, in 
4: #3    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f867bd032b2, in 
4: #2    Source "/workspaces/ros2_rolling_ws/src/ros2_controllers/joint_trajectory_controller/test/test_trajectory_actions.cpp", line 99, in operator() [0x55e624efb8fd]
4:          96:         auto end_time = start_time + wait;
4:          97:         while (clock.now() < end_time)
4:          98:         {
4:       >  99:           traj_controller_->update(clock.now(), clock.now() - start_time);
4:         100:         }
4:         101:       });
4: #1    Source "/workspaces/ros2_rolling_ws/src/ros2_controllers/joint_trajectory_controller/src/joint_trajectory_controller.cpp", line 355, in update [0x7f867c33c9e8]
4:         352:           }
4:         353:           else
4:         354:           {
4:       > 355:             assign_interface_from_point(joint_command_interface_[3], state_desired_.effort);
4:         356:           }
4:         357:         }
4: #0    Source "/workspaces/ros2_rolling_ws/src/ros2_controllers/joint_trajectory_controller/src/joint_trajectory_controller.cpp", line 166, in operator()<std::vector<std::reference_wrapper<hardware_interface::LoanedCommandInterface>, std::allocator<std::reference_wrapper<hardware_interface::LoanedCommandInterface> > > > [0x7f867c2ff5b0]
4:         163:   {
4:         164:     for (size_t index = 0; index < dof_; ++index)
4:         165:     {
4:       > 166:       joint_interface[index].get().set_value(trajectory_point_interface[index]);
4:         167:     }
4:         168:   };
4: Segmentation fault (Address not mapped to object [(nil)])

To Reproduce
Steps to reproduce the behavior:
1.Checkout #607
2. Run colcon test --packages-select joint_trajectory_controller

Environment (please complete the following information):

  • OS: Ubuntu 22.04
  • Version jtc-features

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions