Skip to content

[Bug]: rmf_traffic_shedule_monitor throwing rclcpp::UnsupportedEventTypeException when used with rmw_zenoh #443

@yanrenyu0

Description

@yanrenyu0

Before proceeding, is there an existing issue or discussion for this?

OS and version

Ubuntu 24.04

Open-RMF installation type

Binaries

Other Open-RMF installation methods

No response

Open-RMF version or commit hash

2.7.2-1noble.20250430.000138

ROS distribution

Jazzy

ROS installation type

Binaries

Other ROS installation methods

No response

Package or library, if applicable

ros-jazzy-rmf-traffic-ros2

Description of the bug

When using rmw_zenoh as the RMW implementation and starting rmf_traffic_schedule_monitor, rclcpp::UnsupportedEventTypeException is thrown. Full error log as shown below:

[rmf_traffic_schedule_monitor-2] terminate called after throwing an instance of 'rclcpp::UnsupportedEventTypeException'
[rmf_traffic_schedule_monitor-2]   what():  Failed to initialize event: provided event_type 0 is not supported by rmw_zenoh_cpp, at ./src/rmw_event.cpp:115
[rmf_traffic_schedule_monitor-2] Stack trace (most recent call last):
[rmf_traffic_schedule_monitor-2] #19   Object "/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2", at 0xffffffffffffffff, in 
[rmf_traffic_schedule_monitor-2] #18   Object "/opt/ros/jazzy/lib/rmf_traffic_ros2/rmf_traffic_schedule_monitor", at 0x60587e40b384, in _start
[rmf_traffic_schedule_monitor-2] #17   Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7aa374bfd28a, in __libc_start_main
[rmf_traffic_schedule_monitor-2] #16   Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7aa374bfd1c9, in 
[rmf_traffic_schedule_monitor-2] #15   Object "/opt/ros/jazzy/lib/rmf_traffic_ros2/rmf_traffic_schedule_monitor", at 0x60587e40a931, in main
[rmf_traffic_schedule_monitor-2] #14   Object "/opt/ros/jazzy/lib/librmf_traffic_ros2.so", at 0x7aa3757f254f, in rmf_traffic_ros2::schedule::make_monitor_node(std::function<void (std::shared_ptr<rclcpp::Node>)>, rclcpp::NodeOptions const&, std::chrono::duration<long, std::ratio<1l, 1l> >)
[rmf_traffic_schedule_monitor-2] #13   Object "/opt/ros/jazzy/lib/librmf_traffic_ros2.so", at 0x7aa3757f0272, in rmf_traffic_ros2::schedule::MonitorNode::MonitorNode(std::function<void (std::shared_ptr<rclcpp::Node>)>, rclcpp::NodeOptions const&)
[rmf_traffic_schedule_monitor-2] #12   Object "/opt/ros/jazzy/lib/librmf_traffic_ros2.so", at 0x7aa3757f0175, in rmf_traffic_ros2::schedule::MonitorNode::setup()
[rmf_traffic_schedule_monitor-2] #11   Object "/opt/ros/jazzy/lib/librmf_traffic_ros2.so", at 0x7aa3757eea9f, in rmf_traffic_ros2::schedule::MonitorNode::start_heartbeat_listener()
[rmf_traffic_schedule_monitor-2] #10   Object "/opt/ros/jazzy/lib/librclcpp.so", at 0x7aa37520558e, in rclcpp::node_interfaces::NodeTopics::create_subscription(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rclcpp::SubscriptionFactory const&, rclcpp::QoS const&)
[rmf_traffic_schedule_monitor-2] #9    Object "/opt/ros/jazzy/lib/librmf_traffic_ros2.so", at 0x7aa3757f0458, in 
[rmf_traffic_schedule_monitor-2] #8    Object "/opt/ros/jazzy/lib/librclcpp.so", at 0x7aa3752586a5, in rclcpp::SubscriptionBase::SubscriptionBase(rclcpp::node_interfaces::NodeBaseInterface*, rosidl_message_type_support_t const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rcl_subscription_options_s const&, rclcpp::SubscriptionEventCallbacks const&, bool, rclcpp::DeliveredMessageKind)
[rmf_traffic_schedule_monitor-2] #7    Object "/opt/ros/jazzy/lib/librclcpp.so", at 0x7aa37518da4e, in 
[rmf_traffic_schedule_monitor-2] #6    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.33", at 0x7aa374ece390, in __cxa_throw
[rmf_traffic_schedule_monitor-2] #5    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.33", at 0x7aa374eb8a54, in std::terminate()
[rmf_traffic_schedule_monitor-2] #4    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.33", at 0x7aa374ece0d9, in 
[rmf_traffic_schedule_monitor-2] #3    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.33", at 0x7aa374eb8ff4, in 
[rmf_traffic_schedule_monitor-2] #2    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7aa374bfb8fe, in abort
[rmf_traffic_schedule_monitor-2] #1    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7aa374c1827d, in raise
[rmf_traffic_schedule_monitor-2] #0    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7aa374c71b2c, in pthread_kill
[rmf_traffic_schedule_monitor-2] Aborted (Signal sent by tkill() 36 0)
[ERROR] [rmf_traffic_schedule_monitor-2]: process has died [pid 36, exit code -6, cmd '/opt/ros/jazzy/lib/rmf_traffic_ros2/rmf_traffic_schedule_monitor --ros-args -r __node:=rmf_traffic_schedule_backup --params-file /tmp/launch_params_sh6iw3ir'].

Steps to reproduce the bug

  1. Install rmw_zenoh with sudo apt update && sudo apt install ros-jazzy-rmw-zenoh-cpp -y
  2. Run export RMW_IMPLEMENTATION=rmw_zenoh_cpp
  3. Start zenoh router with ros2 run rmw_zenoh_cpp rmw_zenohd
  4. Run ros2 run rmf_traffic_ros2 rmf_traffic_schedule_monitor --ros-args -r __node:=rmf_traffic_schedule_backup

Expected behavior

rmf_traffic_schedule_monitor starts without any errors

Actual behavior

rclcpp::UnsupportedEventTypeException is thrown, causing rmf_traffic_schedule_monitor to crash

Additional information or screenshots

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions