Bug report
Steps to reproduce
- Install
ros-jazzy-ros2-medkit-gateway in a container on a bridge network and publish the port (-p 8080:8080).
- In the container run
ros2 launch ros2_medkit_gateway bringup.launch.py.
- On the host run
curl http://localhost:8080/api/v1/areas.
- In the container run
ros2 node list and ros2 param list /ros2_medkit_gateway.
Expected behavior
- The host reaches the API through the published port, or the docs name the launch argument that makes it work.
- One gateway process shows up as one node.
Actual behavior
- The host gets
curl: (56) Recv failure: Connection reset by peer. The startup log says REST API at 127.0.0.1:8080, so the gateway listens on the container's loopback. The troubleshooting page only lists "Connection refused". The README tells native users to set cors.allowed_origins, which the launch files already do.
ros2 node list shows /ros2_medkit_gateway four times and warns about duplicate names. The log has Publisher already registered for node name: 'ros2_medkit_gateway' three times, and ros2 param list /ros2_medkit_gateway prints every parameter four times. The fault-service clients, the lifecycle state reader and the subscription executor each create an rclcpp::Node, and all of them take the -r __node:=ros2_medkit_gateway that launch_ros adds to the whole process.
Environment
- ros2_medkit version: 0.6.0 (apt) and main
- ROS 2 distro: Jazzy
- OS: Ubuntu 24.04
Additional information
The gateway unit suite also times out now and then under ctest -j16. test_discovery_manager, test_ros2_topic_data_provider and test_ros2_subscription_executor hang when TearDown cancels the executor before the spin thread has entered spin(). test_node_death_integration reads fault reports after a fixed sleep and sometimes sees a report one tick late.
Bug report
Steps to reproduce
ros-jazzy-ros2-medkit-gatewayin a container on a bridge network and publish the port (-p 8080:8080).ros2 launch ros2_medkit_gateway bringup.launch.py.curl http://localhost:8080/api/v1/areas.ros2 node listandros2 param list /ros2_medkit_gateway.Expected behavior
Actual behavior
curl: (56) Recv failure: Connection reset by peer. The startup log saysREST API at 127.0.0.1:8080, so the gateway listens on the container's loopback. The troubleshooting page only lists "Connection refused". The README tells native users to setcors.allowed_origins, which the launch files already do.ros2 node listshows/ros2_medkit_gatewayfour times and warns about duplicate names. The log hasPublisher already registered for node name: 'ros2_medkit_gateway'three times, andros2 param list /ros2_medkit_gatewayprints every parameter four times. The fault-service clients, the lifecycle state reader and the subscription executor each create anrclcpp::Node, and all of them take the-r __node:=ros2_medkit_gatewaythat launch_ros adds to the whole process.Environment
Additional information
The gateway unit suite also times out now and then under
ctest -j16.test_discovery_manager,test_ros2_topic_data_providerandtest_ros2_subscription_executorhang when TearDown cancels the executor before the spin thread has enteredspin().test_node_death_integrationreads fault reports after a fixed sleep and sometimes sees a report one tick late.