-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Service introspection cpp #885
Comments
The commands work for me, however when trying to disable service events by setting the ROS parameter to
A workaround is to pass in an explicit set of quotes, like:
Perhaps it is easily fixed by picking a different keyword for the demo. Instead of |
Hi, I tested using a simplified version of the code that only enables the full introspection on both the client and the server, full code here: https://github.com/nirwester/ros2_journey_examples/tree/master/homeworks/chap4/service_with_introspection And FastRTPS (I couldn't find an open ticket specific for it). I encontered the following issue: If executing the following sequence of actions:
The following last response sent by the server is received, even if the service is no more running: info:
This would seem an issue in the durability of the corresponding publisher, probably set to transient_local. I don't know if there's any technical reason for this kind of implementation, but getting the last published results upon subscription is confusing. Apart from this issue, the feature is working (all 4 messages are received if the subscription is performed before running the client). |
@jacobperron thanks for the feedback! I agree @nirwester are you able to confirm if you see this problem outside a docker container? |
@Yadunund not within a short time, sorry, but I would be surprised if this would be docker-specific. Maybe @jacobperron could try to briefly reproduce it too? |
I was able to reproduce the issue, and I see what you mean. I could see us going one of two ways here:
I lean towards the latter, but maybe there was some other thinking here. @jacobperron do you know if it was ever discussed to keep this TRANSIENT_LOCAL for some reason? Regardless, I think we should do some follow-up work here. @nirwester would you mind opening a bug about this on https://github.com/ros2/rcl ? We can follow-up more there. |
Thanks @clalancette , I agree that the volatile choice sounds more reasonable. I opened an issue here ros2/rcl#1068 |
Thanks, much appreciated. |
@clalancette I don't recall a discussion about using transient local durability. The proposed design document suggest we should use the default QoS for service event topics (ros-infrastructure/rep#360):
|
All right, thanks. It may just be a bug in the implementation then; I'll take a look and see what I can find. |
Setup
Links
Checks
Run the client and server
details
Try
# User input in terminal 1 ros2 launch demo_nodes_cpp introspect_services_launch.py
# User input in terminal 2 ros2 topic list --include-hidden-topics
Expect
# stdout in terminal 1 [introspection_service-1] a: 2 b: 3 [introspection_client-2] [INFO] [1680585324.964598437] [introspection_client]: Result of add_two_ints: 5
# stdout in terminal 2 /parameter_events /rosout
Configure service to send introspection metadata
details
Try
# User input in terminal 1 ros2 launch demo_nodes_cpp introspect_services_launch.py
Expect
# stdout in terminal 1 [introspection_service-1] a: 2 b: 3 [introspection_client-2] [INFO] [1680585324.964598437] [introspection_client]: Result of add_two_ints: 5
# stdout in terminal 2 info: event_type: 1 stamp: sec: 1680586531 nanosec: 726539263 client_gid: - 83 - 143 - 248 - 38 - 47 - 231 - 185 - 230 - 98 - 17 - 45 - 187 - 128 - 124 - 253 - 156 sequence_number: 46 request: [] response: [] --- info: event_type: 2 stamp: sec: 1680586531 nanosec: 726695003 client_gid: - 83 - 143 - 248 - 38 - 47 - 231 - 185 - 230 - 98 - 17 - 45 - 187 - 128 - 124 - 253 - 156 sequence_number: 46 request: [] response: []
Configure client to send introspection metadata
details
Try
# User input in terminal 1 ros2 launch demo_nodes_cpp introspect_services_launch.py
Expect
# stdout in terminal 1 [introspection_service-1] a: 2 b: 3 [introspection_client-2] [INFO] [1680585324.964598437] [introspection_client]: Result of add_two_ints: 5
# stdout in terminal 2 info: event_type: 0 stamp: sec: 1680586637 nanosec: 158736272 client_gid: - 1 - 16 - 34 - 142 - 114 - 128 - 207 - 116 - 98 - 246 - 204 - 52 - 0 - 0 - 0 - 7 sequence_number: 48 request: [] response: [] --- info: event_type: 3 stamp: sec: 1680586637 nanosec: 159157853 client_gid: - 1 - 16 - 34 - 142 - 114 - 128 - 207 - 116 - 98 - 246 - 204 - 52 - 0 - 0 - 0 - 7 sequence_number: 48 request: [] response: []
You can find the code used to generate this test case here
The text was updated successfully, but these errors were encountered: