rclcpp icon indicating copy to clipboard operation
rclcpp copied to clipboard

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

Open Crola1702 opened this issue 1 year ago • 2 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:

  • https://build.ros2.org/job/Rci__nightly-connext_ubuntu_noble_amd64/80/
  • https://build.ros2.org/job/Jci__nightly-connext_ubuntu_noble_amd64/31

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.

Crola1702 avatar Jul 11 '24 13:07 Crola1702

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.

clalancette avatar Jul 11 '24 13:07 clalancette

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

Crola1702 avatar Jul 17 '24 04:07 Crola1702

Friendly ping @mjcarroll

Crola1702 avatar Nov 12 '24 14:11 Crola1702

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

clalancette avatar Dec 02 '24 03:12 clalancette