Skip to content
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

Communication issues with many Docker containers #530

Open
cr01927 opened this issue Mar 30, 2020 · 3 comments
Open

Communication issues with many Docker containers #530

cr01927 opened this issue Mar 30, 2020 · 3 comments
Assignees

Comments

@cr01927
Copy link

cr01927 commented Mar 30, 2020

First brought up here - https://answers.ros.org/question/346990/ros2-eloquent-tf2-listeners-occasionally-prevent-receiving-msgs/

Bug report

Required Info:

Steps to reproduce issue

Install Docker (v19.03.8) and docker-compose (1.25.4)
Clone this repository - https://github.com/cr01927/ros2-tf2-error-example
Run this command for 20 seconds or so, then kill with ctrl-c

docker-compose up --build --scale listener=20 > log.txt

Parse the output with

less log.txt | egrep -o 'listener_([0-9]+)' | sort | uniq -c

Expected behavior

The output of the above command should show each listener with the same number of log messages, meaning each listener node executed its callback function the same number of times (+1 for an initialization log msg)

Actual behavior

# log msgs | listener name
     16 listener_1
     16 listener_10
     17 listener_11
     17 listener_12
      1 listener_13
     17 listener_14
     15 listener_15
     16 listener_16
     16 listener_17
      2 listener_18
     14 listener_19
     17 listener_2
      2 listener_20
     17 listener_3
      2 listener_4
     17 listener_5
     16 listener_6
     17 listener_7
     14 listener_8
     17 listener_9

Some listeners never receive any msgs, or very few

Additional information

I believe this is related to using a TF listener - I could not get this example to reproduce the error until I added the listener.

ETA: Fixed docker-compose redirect to log file, fixed grep regex pattern, and added OpenSplice to list of DDS implementations where this occurs
ETA: Added CycloneDDS to list of DDS implementations where this occurs

@fujitatomoya
Copy link
Collaborator

I am curious on this. Not sure if this is related to ros2/rmw_fastrtps#349, could you try to run with rmw_cyclonedds instead if this still reproduces?

@cr01927
Copy link
Author

cr01927 commented Mar 31, 2020

Just ran on cyclonedds, and the issue still presented. Also, I wrote a cpp listener and tested it on various DDS implementations, and the issue did not present, so it looks like its in rclpy or the Python implementation of TF2.

@fujitatomoya
Copy link
Collaborator

@cr01927

got it, thanks for the information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants