RTIPerftest TLS doesn't work on Raspberry Pi 3B

6 posts / 0 new
Last post
Offline
Last seen: 2 months 1 week ago
Joined: 08/13/2019
Posts: 14
RTIPerftest TLS doesn't work on Raspberry Pi 3B

Hi,

I'm trying to run rtiperftest with TLS transport on raspberry pi 3B. But I got the following error message:

$ bin/armv6vfphLinux3.xgcc4.7.2/release/perftest_cpp -transport TLS -transportVerbosity 6
RTI Perftest 3.1.0 53dfe4c (RTI Connext DDS 6.0.1)
[D0001|ENABLE] N:[D0001|ENABLE] RTITLS_context_init:Found OpenSSL library version OpenSSL 1.1.1g 21 Apr 2020
[D0001|ENABLE] RTITLS_context_init:Certificate chain cannot be loaded from file './resource/secure/sub.pem'
:[D0001|ENABLE] DDS_DomainParticipantConfigurator_setup_custom_transports:!create custom transport plugin
[D0001|ENABLE] DDS_DomainParticipantConfigurator_enable:!install transport plugin aliases = custom transports
[D0001|ENABLE] DDS_DomainParticipant_enableI:!enable transport configurator
DDSDomainParticipant_impl::createI:ERROR: Failed to auto-enable entity
DomainParticipantFactory_impl::create_participant():!create failure creating participant
Problem creating participant.
[Error]: _MessagingImpl was null or it could not be initialized
Test ended.

My system info is:

Linux raspberrypi96 5.4.72-v7+ #1356 SMP Thu Oct 22 13:56:54 BST 2020 armv7l GNU/Linux

I have tried to re-generate all SSL keys and certificates by executing the shell script:

rti_perftest-3.1.0_armv6vfphLinux3.xgcc4.7.2/resource/secure/make.sh

The script works well, but the same problem persists.

I installed the rtiperftest binary buildup from https://github.com/rticommunity/rtiperftest/releases/download/3.1/rti_perftest-3.1.0_RTI_ConnextDDS_Pro_6.0.1_armv6Linux.tar.gz.

I performed same operations on x64Linux machine and TLS works well. 

Does anybody know how to solve the problem on Pi?

 

Organization:
Offline
Last seen: 2 months 1 week ago
Joined: 08/13/2019
Posts: 14

Some findings when solving this problem:

  1. The rti_perftest binary for raspberry pi (armv6vfphLinux3.xgcc4.7.2) provided by perftest group is built based on openssl 1.1.1g. However, rti_perftest requires openssl 1.1.1d.
  2. So I rebuilt rti_perftest using cross-platform compilation tool on x64 ubuntu machine. The rtiperftest application can't be compiled successfully with the ‘ -secure’ and ‘ —openssl-home’ arguments. After I removed these two arguments and linked openssl 1.1.1d library, rtiperftest can be compiled successfully.
jmorales's picture
Offline
Last seen: 3 months 3 weeks ago
Joined: 08/28/2013
Posts: 57

Hi,

I am taking note of this. We will investigate it and fix it accordingly.

jmorales's picture
Offline
Last seen: 3 months 3 weeks ago
Joined: 08/28/2013
Posts: 57

I can confirm KKVandy that the issue doesn't happen when not compiling against security.

jmorales's picture
Offline
Last seen: 3 months 3 weeks ago
Joined: 08/28/2013
Posts: 57

I got to the bottom of the issue KKVandy:

The problem is related with mixing statically linked libraries (The openssl + Connext DDS Secure ones) with dynamically linked ones (DTLS and TLS ones, which also link with openssl). This causes trouble in certain platforms, and the raspberry-pi one is one of them.

You should be able to solve this by linking WITH -secure + adding --dynamic to the compilation parameters (hence compiling everything dynamically).

Offline
Last seen: 2 months 1 week ago
Joined: 08/13/2019
Posts: 14

Sounds good. Thank you for figuring out this problem.