ros2/rclcpp

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

Crola1702 opened this issue · 4 comments

Bug report

Required Info:

  • Operating System:
    • Ubuntu Jammy and Noble
  • Installation type:
    • Source
  • Version or commit hash:
    • Jazzy and Rolling
  • DDS implementation:
    • RTI Connext only
  • Client library (if applicable):
    • Rclcpp

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.

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.

This report was split between here and ros2/rmw_connextdds#155

Friendly ping @mjcarroll

I believe this was fixed by #2684. I'm going to close this out, but feel free to reopen if this occurs again.