Commit e51de5f
committed
[yugabyte#30735] build: Bump OpenSSL verison to 3.5.7/3.1.2
Summary:
Bumping OpenSSL to 3.5.7, since 3.0.x is going EOL in September, and 3.5.x
is the next LTS series. Also bumping the FIPS provider to 3.1.2, since the
current version (3.0.8) will no longer be certified after September, and 3.1.2
is the newest FIPS certified version.
As of OpenSSL 3.2.x, `openssl req` and `openssl ca` always produce X.509v3
certificates instead of X.509v1 certificates. This breaks the certificate generation
for our test certificates, so this revision also fixes that issue
(related: openssl/openssl#26144).
Additionally, the SecureConnectionTest.CipherSuites tests setting the ciphersuites
gflag, but uses TLS_AES_128_CCM_8_SHA256 to test, which has been moved
to SECLEVEL=0 as of OpenSSL 3.2.x (openssl/openssl#19613).
This revision changes it to use TLS_AES_128_CCM_SHA256 instead.
A TSAN suppression was also added on `libcrypto.so.3` to catch data races such as:
```
Read of size 8 at 0x7208000a8a40 by thread T53:
#0 memcmp ${YB_LLVM_TOOLCHAIN_DIR}-build/src/llvm-project/compiler-rt/lib/tsan/rtl/../../sanitizer_common/sanitizer_common_interceptors.inc:879:3 (secure_connection_test+0xbd2ca)
#1 ASN1_STRING_cmp <null> (libcrypto.so.3+0x22dc5f)
#2 yb::rpc::RefinedStream::Handshake() ${YB_SRC_ROOT}/src/yb/rpc/refined_stream.cc:230:37 (libyrpc.so+0x1626f1)
#3 yb::rpc::RefinedStream::ProcessReceived(yb::StronglyTypedBool<yb::rpc::ReadBufferFull_Tag>) ${YB_SRC_ROOT}/src/yb/rpc/refined_stream.cc:155:14 (libyrpc.so+0x16244b)
...
Previous write of size 8 at 0x7208000a8a40 by thread T52 (mutexes: write M0):
#0 memcpy ${YB_LLVM_TOOLCHAIN_DIR}-build/src/llvm-project/compiler-rt/lib/tsan/rtl/../../sanitizer_common/sanitizer_common_interceptors_memintrinsics.inc:117:5 (secure_connection_test+0xabfee)
#1 ASN1_STRING_set <null> (libcrypto.so.3+0x22d987)
#2 yb::rpc::RefinedStream::Handshake() ${YB_SRC_ROOT}/src/yb/rpc/refined_stream.cc:230:37 (libyrpc.so+0x1626f1)
#3 yb::rpc::RefinedStream::ProcessReceived(yb::StronglyTypedBool<yb::rpc::ReadBufferFull_Tag>) ${YB_SRC_ROOT}/src/yb/rpc/refined_stream.cc:155:14 (libyrpc.so+0x16244b)
...
Location is heap block of size 21 at 0x7208000a8a40 allocated by thread T52:
#0 malloc ${YB_LLVM_TOOLCHAIN_DIR}-build/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:682:5 (secure_connection_test+0xaec70)
#1 CRYPTO_realloc <null> (libcrypto.so.3+0x34df2d)
#2 yb::rpc::RefinedStream::Handshake() ${YB_SRC_ROOT}/src/yb/rpc/refined_stream.cc:230:37 (libyrpc.so+0x1626f1)
#3 yb::rpc::RefinedStream::ProcessReceived(yb::StronglyTypedBool<yb::rpc::ReadBufferFull_Tag>) ${YB_SRC_ROOT}/src/yb/rpc/refined_stream.cc:155:14 (libyrpc.so+0x16244b)
...
Mutex M0 (0x7210000bb300) created at:
#0 pthread_rwlock_init ${YB_LLVM_TOOLCHAIN_DIR}-build/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1553:3 (secure_connection_test+0xb409a)
#1 CRYPTO_THREAD_lock_new <null> (libcrypto.so.3+0x36174d)
#2 yb::rpc::SecureContext::Impl::UseCertificates(string const&, yb::Slice const&, yb::Slice const&) ${YB_SRC_ROOT}/src/yb/rpc/secure_stream.cc:667:3 (libyrpc.so+0x199972)
#3 yb::rpc::SecureContext::UseCertificates(string const&, yb::Slice const&, yb::Slice const&) ${YB_SRC_ROOT}/src/yb/rpc/secure_stream.cc:725:17 (libyrpc.so+0x19d0b2)
...
```
This is a false positive with missing frames, which is a known issue with TSAN when some dynamic libraries
(OpenSSL in this case) are not instrumented. Switching libcrypto.so with one from a manual instrumented
build of OpenSSL resolves the issue, but thirdparty does not currently build properly with instrumented OpenSSL
due to dependencies between different libraries (yugabyte#32121). TSAN errors with libcrypto.so were entirely suppressed
since there are many different traces in which this surfaces.
Test Plan: Jenkins
Reviewers: hsunder
Reviewed By: hsunder
Subscribers: mihnea, ybase
Tags: #jenkins-ready
Differential Revision: https://phorge.dev.yugabyte.com/D509281 parent ed47410 commit e51de5f
4 files changed
Lines changed: 32 additions & 24 deletions
File tree
- build-support
- src/yb/integration-tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| 48 | + | |
48 | 49 | | |
49 | 50 | | |
50 | 51 | | |
| |||
55 | 56 | | |
56 | 57 | | |
57 | 58 | | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
58 | 63 | | |
59 | 64 | | |
60 | 65 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
| 24 | + | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
| 29 | + | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
| 35 | + | |
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | | - | |
| 40 | + | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
| 46 | + | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
| 51 | + | |
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
56 | | - | |
| 56 | + | |
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
61 | | - | |
| 61 | + | |
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
66 | | - | |
| 66 | + | |
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
71 | | - | |
| 71 | + | |
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
76 | | - | |
| 76 | + | |
77 | 77 | | |
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
81 | | - | |
| 81 | + | |
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | | - | |
| 86 | + | |
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
91 | | - | |
| 91 | + | |
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
96 | | - | |
| 96 | + | |
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
101 | | - | |
| 101 | + | |
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
106 | | - | |
| 106 | + | |
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
111 | | - | |
| 111 | + | |
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
116 | | - | |
| 116 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
199 | 199 | | |
200 | 200 | | |
201 | 201 | | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
221 | 221 | | |
222 | 222 | | |
223 | 223 | | |
224 | | - | |
| 224 | + | |
225 | 225 | | |
226 | 226 | | |
227 | 227 | | |
| |||
0 commit comments