: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
- Run a CI build with RTI Connext enabled in any ROS2 distro
- 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.
:
- projectroot.test.rclcpp.test_service (Jci, Rci)
- rclcpp.TestService.server_qos (Jci, Rci)
"could not create client: error not set, at /tmp/ws/src/ros2/rcl/rcl/src/rcl/client.c:146" thrown in the test body.
:
- projectroot.test.rclcpp.test_client_common (Jci, Rci)
- rclcpp.TestAllClientTypesWithServer/Client.client_qos (Jci, Rci)
- rclcpp.TestAllClientTypesWithServer/GenericClient.client_qos (Jci, Rci)
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.