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

HADOOP-18583. Fix loading of OpenSSL 3.x symbols #7149

Merged

Conversation

packet23
Copy link
Contributor

@packet23 packet23 commented Nov 5, 2024

Description of PR

Cherry picked #5256 for branch-3.4. Original description:

Fix for HADOOP-18583. OpenSSL 3.x broke existing ABI - the symbols for

  • EVP_CIPHER_CTX_block_size and
  • EVP_CIPHER_CTX_encrypting

are now called

  • EVP_CIPHER_CTX_get_block_size and
  • EVP_CIPHER_CTX_is_encrypting

respectively (c.f. commit ed576acdf591d4164905ab98e89ca5a3b99d90ab that landed in openssl-3.0.0-beta1)

The PR changes the hadoop-common native code such that when compiled against OpenSSL 3.x, it can successfully load the OpenSSL 3.x symbols at runtime.

How was this patch tested?

Original PR was tested manually. Quoting original PR:

A patched version of Hadoop 3.3.4 was compiled on an x86-64 Ubuntu 22.04 machine and hadoop checknative was invoked.

$ openssl version
OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)
$ hadoop checknative
2022-12-24 11:54:31,538 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native
2022-12-24 11:54:31,539 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
2022-12-24 11:54:31,558 INFO nativeio.NativeIO: The native code was built without PMDK support.
Native library checking:
hadoop:  true /hadoop/lib/native/libhadoop.so.1.0.0
zlib:    true /lib/x86_64-linux-gnu/libz.so.1
zstd  :  true /lib/x86_64-linux-gnu/libzstd.so.1
bzip2:   true /lib/x86_64-linux-gnu/libbz2.so.1
openssl: true /lib/x86_64-linux-gnu/libcrypto.so
ISA-L:   true /lib/x86_64-linux-gnu/libisal.so.2
PMDK:    false The native code was built without PMDK support.

For code changes:

  • Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
  • Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
  • If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 19m 5s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
-1 ❌ test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ branch-3.4 Compile Tests _
+1 💚 mvninstall 50m 42s branch-3.4 passed
+1 💚 compile 19m 31s branch-3.4 passed with JDK Ubuntu-11.0.24+8-post-Ubuntu-1ubuntu320.04
+1 💚 compile 17m 51s branch-3.4 passed with JDK Private Build-1.8.0_422-8u422-b05-1~20.04-b05
+1 💚 mvnsite 1m 45s branch-3.4 passed
+1 💚 shadedclient 129m 54s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+1 💚 mvninstall 0m 59s the patch passed
+1 💚 compile 18m 44s the patch passed with JDK Ubuntu-11.0.24+8-post-Ubuntu-1ubuntu320.04
+1 💚 cc 18m 44s the patch passed
+1 💚 golang 18m 44s the patch passed
+1 💚 javac 18m 44s the patch passed
+1 💚 compile 17m 43s the patch passed with JDK Private Build-1.8.0_422-8u422-b05-1~20.04-b05
+1 💚 cc 17m 43s the patch passed
+1 💚 golang 17m 43s the patch passed
+1 💚 javac 17m 43s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 mvnsite 1m 41s the patch passed
+1 💚 shadedclient 40m 27s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 19m 26s hadoop-common in the patch passed.
+1 💚 asflicense 1m 4s The patch does not generate ASF License warnings.
249m 28s
Subsystem Report/Notes
Docker ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7149/1/artifact/out/Dockerfile
GITHUB PR #7149
Optional Tests dupname asflicense compile cc mvnsite javac unit codespell detsecrets golang
uname Linux 1e7d95308224 5.15.0-124-generic #134-Ubuntu SMP Fri Sep 27 20:20:17 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision branch-3.4 / a49c078
Default Java Private Build-1.8.0_422-8u422-b05-1~20.04-b05
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.24+8-post-Ubuntu-1ubuntu320.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_422-8u422-b05-1~20.04-b05
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7149/1/testReport/
Max. process+thread count 2249 (vs. ulimit of 5500)
modules C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7149/1/console
versions git=2.25.1 maven=3.6.3
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@steveloughran steveloughran left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
+1

@steveloughran steveloughran merged commit f5cdb26 into apache:branch-3.4 Nov 7, 2024
0 of 2 checks passed
@packet23 packet23 deleted the HADOOP-18583-backport-3.4 branch November 7, 2024 19:24
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

Successfully merging this pull request may close these issues.

3 participants