ros2 / rclcpp

rclcpp (ROS Client Library for C++)
Apache License 2.0
521 stars 411 forks source link

:farmer: `test_client_common` and `test_service` failing in Rolling and Jazzy connext nightlies #2582

Open Crola1702 opened 1 month ago

Crola1702 commented 1 month ago

Bug report

Required Info:

Steps to reproduce issue

  1. Run a CI build with RTI Connext enabled in any ROS2 distro
  2. See test failures

Additional information

Reference builds:

Test regressions:

"could not create service: error not set, at /tmp/ws/src/ros2/rcl/rcl/src/rcl/service.c:159" thrown in the test body.:

"could not create client: error not set, at /tmp/ws/src/ros2/rcl/rcl/src/rcl/client.c:146" thrown in the test body.:

Most of errors show an output similar to the following, depending on the kind of test (client or service):

[D0000|Pub(80000008)|T=rr/ns/serviceReply|CREATE Writer] DDS_LivelinessQosPolicy_is_consistentI:inconsistent QoS policy: assertions_per_lease_duration is set to more than 1000000 assertions per second
[D0000|Pub(80000008)|T=rr/ns/serviceReply|CREATE Writer] DDS_DataWriterQos_is_consistentI:inconsistent QoS policy: liveliness
[D0000|Pub(80000008)|T=rr/ns/serviceReply|CREATE Writer] DDS_Publisher_create_datawriter_disabledI:ERROR: Inconsistent QoS
unknown file: Failure
C++ exception with description "could not create service: error not set, at /tmp/ws/src/ros2/rcl/rcl/src/rcl/service.c:159" thrown in the test body.
clalancette commented 1 month ago

So I think this needs to be split into (at least) two separate issues.

In Iron and Humble, it is indeed the case that rmw_client_set_on_new_response_callback is not implemented, and that is the cause of the test failures that look like:

C++ exception with description "failed to set the on new response callback for client: rmw_client_set_on_new_response_callback not implemented, at /tmp/ws/src/ros2/rmw_connextdds/rmw_connextdds_common/src/common/rmw_listener.cpp:58" thrown in the test body.

I think that should be reported over at https://github.com/ros2/rmw_connextdds.

There is a separate issue here as well, which seems to happen on all distributions. That problem looks like the following:

[ERROR] [1720178602.536775801] [rmw_connextdds]: failed to create DDS writer
[ERROR] [1720178602.536905075] [rmw_connextdds]: failed to create client requester
[ERROR] [1720178602.536920455] [rmw_connextdds]: failed to create RMW client implementation
[D0000|Pub(80000008)|T=rq/ns/empty_serviceRequest|CREATE Writer] DDS_LivelinessQosPolicy_is_consistentI:inconsistent QoS policy: assertions_per_lease_duration is set to more than 1000000 assertions per second
[D0000|Pub(80000008)|T=rq/ns/empty_serviceRequest|CREATE Writer] DDS_DataWriterQos_is_consistentI:inconsistent QoS policy: liveliness
[D0000|Pub(80000008)|T=rq/ns/empty_serviceRequest|CREATE Writer] DDS_Publisher_create_datawriter_disabledI:ERROR: Inconsistent QoS
unknown file: Failure
C++ exception with description "could not create client: error not set, at /tmp/ws/src/ros2/rcl/rcl/src/rcl/client.c:146" thrown in the test body.

That actually looks like a bug in the test, or at least the lease_duration looks bogus somehow. That should be reported here in rclcpp; you could just rename this issue for that, or you could close this out and create a new one.

Crola1702 commented 1 month ago

This report was split between here and https://github.com/ros2/rmw_connextdds/issues/155