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

Foxy support #180

Closed
mikaelarguedas opened this issue Mar 23, 2020 · 9 comments
Closed

Foxy support #180

mikaelarguedas opened this issue Mar 23, 2020 · 9 comments

Comments

@mikaelarguedas
Copy link
Member

mikaelarguedas commented Mar 23, 2020

Security demos work on Ubuntu Bionic but fail on Focal.
This ticket is to aggregate findings about what need to change ahead of Foxy release.

Current state:

Code to test talker listener
docker run -it --rm osrf/ros2:nightly
source /opt/ros/foxy/setup.bash 
mkdir ~/sros2_demo
cd ~/sros2_demo
export ROS_SECURITY_ROOT_DIRECTORY=~/sros2_demo/demo_keys
export ROS_SECURITY_ENABLE=true
export ROS_SECURITY_STRATEGY=Enforce
ros2 security create_keystore demo_keys
ros2 security create_key demo_keys /talker
ros2 security create_key demo_keys /listener
ros2 launch demo_nodes_cpp talker_listener.launch.xml 


Error message
[talker-1] 2020-03-23 15:26:26.045 [SECURITY_AUTHENTICATION Error] OpenSSL library cannot set peer (/home/jenkins-agent/workspace/packaging_linux/ws/src/eProsima/Fast-RTPS/src/cpp/security/authentication/PKIDH.cpp:1041) -> Function on_process_handshake
  • CycloneDDS fails: maybe openSSL support ?
    - not sure how to do standalone security testing for Cyclone

Works as of eclipse-cyclonedds/cyclonedds#446

  • RTI Connext: works: connext ships it's own (EOL...) OpenSSL 1.0.2 (support hypothesis of OpenSSL version being the culprit)

OpenSSL version:

If it was an openSSL version support issue, rolling distributions like Windows and Macos should have allowed us to catch it earlier..

Windows is using 1.0.2u apparently, https://github.com/ros2/ci/blob/3ec2369bd0ddc04e80b9fadab272abcd46e08b64/windows_docker_resources/Dockerfile.msvc2019#L20 so it's normal it didnt catch any error

on MacOS there seem to be tests failing for a long time, need to track down if it worked with openssl 1.1.1 at some point

@mikaelarguedas
Copy link
Member Author

As of eclipse-cyclonedds/cyclonedds#446 Cyclone works for me

@kyrofa
Copy link
Member

kyrofa commented Mar 24, 2020

Ah, excellent! We'll hope to hear back from Fast RTPS soon.

@ivanpauno ivanpauno mentioned this issue Mar 31, 2020
7 tasks
@mikaelarguedas mikaelarguedas changed the title Focal support Foxy support Apr 8, 2020
@mikaelarguedas
Copy link
Member Author

mikaelarguedas commented Apr 8, 2020

Ubuntu Focal MacOS Windows Issues/Fixes
Fast-RTPS ✔️ ✔️ ✔️ eProsima/Fast-DDS#1087 ros2/system_tests#415
Connext ✔️ ✔️ ros2/system_tests#409
CycloneDDS ros2/system_tests#408 ros2/rmw_cyclonedds#123 eclipse-cyclonedds/cyclonedds#132
ros2/build_farmer#269 ros2/ci#436 ros2/ci#421 ros2/system_tests#433 ros2/ci#454

@clalancette
Copy link
Contributor

To try and summarize the state a bit as of today:

[test_publisher-1] >>> [rcutils|error_handling.c:108] rcutils_set_error_state()
[test_publisher-1] This error state is being overwritten:
[test_publisher-1] 
[test_publisher-1]   'SECURITY ERROR: directory 'NOTFOUND/enclaves/publisher' does not exist., at /Users/osrf/jenkins-agent/workspace/ci_osx/ws/src/ros2/rcl/rcl/src/rcl/security.c:196'
[test_publisher-1] 
[test_publisher-1] with this new error message:
[test_publisher-1] 
[test_publisher-1]   'provided event_type is not supported by rmw_fastrtps_cpp, at /Users/osrf/jenkins-agent/workspace/ci_osx/ws/src/ros2/rmw_fastrtps/rmw_fastrtps_shared_cpp/src/rmw_event.cpp:59'
[test_publisher-1] 
[test_publisher-1] rcutils_reset_error() should be called after error handling to avoid this.
[test_publisher-1] <<<

That suggests to me a failure on the ROS 2 side, but please correct me if I'm wrong.

@mikaelarguedas
Copy link
Member Author

mikaelarguedas commented May 1, 2020

Few clarifications:

The error message you point to are expected and part of passing tests (the tests that check that we can do non-secure communication in case of artifacts not found). The failing tests are the ones doing secure communication and they just timeout without printing much information in the console output

Also this change has not been tested on windows with a recent openssl that I know of so we don't know if it works on Windows or not. I commented at ros2/system_tests#415 (comment)

I added ros2/system_tests#415 to the Fast-RTPS line of the matrix to reflect the fact that we don't have the tests enabled yet

This one doesnt pass in release mode either. It must be related to the content of these openssl archives : https://github.com/ros2/ci/blob/a0dc67363a62d43739775d0319ff9b524fdd442c/windows_docker_resources/Dockerfile.msvc2019#L106
But I don't think they've ever been used in the past as the environment variable doesn't have the right name in the dockerfile and was not used for windows prior to ros2/system_tests#409.

So it needs to be investigated in Release mode, and once that works we'll likely need to point to a different directory when building in debug mode.

ros2/ci#436 - being worked on by

❤️

@kyrofa
Copy link
Member

kyrofa commented May 14, 2020

@mikaelarguedas would it be worth adding eclipse-cyclonedds/cyclonedds#132 to the matrix above for CycloneDDS?

@mikaelarguedas
Copy link
Member Author

mikaelarguedas would it be worth adding eclipse-cyclonedds/cyclonedds#132 to the matrix above for CycloneDDS?

Sure thing, updated the comment accordingly

@ros-discourse
Copy link

This issue has been mentioned on ROS Discourse. There might be relevant details there:

https://discourse.ros.org/t/ros-2-tsc-meeting-minutes-2020-05-21/14247/1

@mikaelarguedas
Copy link
Member Author

closing as way out of date. There may be some matrix cells still not supported.

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

4 participants