Skip to content

Conversation

MikaelSmith
Copy link
Contributor

@MikaelSmith MikaelSmith commented Jul 8, 2025

Description of PR

On SLES 15, failing to add tirpc results in failures linking pthreads. tirpc is present and appears and the newer RPC library option (with support for IPv6). Use it when available.

How was this patch tested?

Builds on RHEL 8, RHEL 9, Ubuntu 22, and SLES 15.

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?

On SLES 15, failing to add tirpc results in failures linking pthreads.
tirpc is present and appears to be the newer RPC library option (with
support for IPv6). Use it when available.
@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 33s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s 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.
_ trunk Compile Tests _
-1 ❌ mvninstall 34m 51s /branch-mvninstall-root.txt root in trunk failed.
+1 💚 compile 0m 34s trunk passed
+1 💚 mvnsite 0m 29s trunk passed
-1 ❌ shadedclient 37m 50s branch has errors when building and testing our client artifacts.
_ Patch Compile Tests _
+1 💚 mvninstall 0m 16s the patch passed
+1 💚 compile 0m 23s the patch passed
+1 💚 cc 0m 23s the patch passed
+1 💚 javac 0m 23s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 mvnsite 0m 18s the patch passed
-1 ❌ shadedclient 1m 24s patch has errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 23s hadoop-pipes in the patch passed.
+1 💚 asflicense 0m 31s The patch does not generate ASF License warnings.
43m 9s
Subsystem Report/Notes
Docker ClientAPI=1.51 ServerAPI=1.51 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7789/1/artifact/out/Dockerfile
GITHUB PR #7789
Optional Tests dupname asflicense compile cc mvnsite javac unit codespell detsecrets
uname Linux f4434e8fb98a 5.15.0-143-generic #153-Ubuntu SMP Fri Jun 13 19:10:45 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / bdd0879
Default Java Red Hat, Inc.-1.8.0_412-b08
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7789/1/testReport/
Max. process+thread count 98 (vs. ulimit of 5500)
modules C: hadoop-tools/hadoop-pipes U: hadoop-tools/hadoop-pipes
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7789/1/console
versions git=2.9.5 maven=3.9.10
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@MikaelSmith MikaelSmith changed the title HADOOP-19611. Use tirpc when found HADOOP-19611. Fix native profile build of hadoop-pipes on SLES 15. Jul 8, 2025
@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 33s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s 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.
_ trunk Compile Tests _
-1 ❌ mvninstall 34m 11s /branch-mvninstall-root.txt root in trunk failed.
+1 💚 compile 0m 33s trunk passed
+1 💚 mvnsite 0m 31s trunk passed
-1 ❌ shadedclient 37m 9s branch has errors when building and testing our client artifacts.
_ Patch Compile Tests _
+1 💚 mvninstall 0m 17s the patch passed
+1 💚 compile 0m 23s the patch passed
+1 💚 cc 0m 23s the patch passed
+1 💚 javac 0m 23s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 mvnsite 0m 18s the patch passed
-1 ❌ shadedclient 1m 24s patch has errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 23s hadoop-pipes in the patch passed.
+1 💚 asflicense 0m 31s The patch does not generate ASF License warnings.
42m 29s
Subsystem Report/Notes
Docker ClientAPI=1.51 ServerAPI=1.51 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7789/2/artifact/out/Dockerfile
GITHUB PR #7789
Optional Tests dupname asflicense compile cc mvnsite javac unit codespell detsecrets
uname Linux 95e5ae1d0505 5.15.0-143-generic #153-Ubuntu SMP Fri Jun 13 19:10:45 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / aa20624
Default Java Red Hat, Inc.-1.8.0_412-b08
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7789/2/testReport/
Max. process+thread count 65 (vs. ulimit of 5500)
modules C: hadoop-tools/hadoop-pipes U: hadoop-tools/hadoop-pipes
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7789/2/console
versions git=2.9.5 maven=3.9.10
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR updates the Hadoop Pipes CMake logic to prefer and link against libtirpc when available, fixing native builds on SLES 15.

  • Switches from manually finding rpc/rpc.h to using pkg_check_modules(LIBTIRPC)
  • Simplifies conditional blocks to use LIBTIRPC_FOUND for include-path detection and linking
  • Always links tirpc when found
Comments suppressed due to low confidence (1)

hadoop-tools/hadoop-pipes/src/CMakeLists.txt:33

  • Removing the fallback find_path(rpc/rpc.h) means RPC_INCLUDE_DIRS is never set when libtirpc isn’t available. This will break builds on systems without libtirpc. Consider restoring a fallback detection of rpc/rpc.h in an else() branch.
    )

Copy link
Contributor

@cnauroth cnauroth left a comment

Choose a reason for hiding this comment

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

Hello @MikaelSmith . Thank you for the patch. It appears that this removes the capability for the build environment to detect rpc.h directly, and instead always uses tirpc. Can we be confident that direct detection of rpc.h is no longer relevant in modern build environments, and the change is safe across distros (not just SLES)?

@MikaelSmith
Copy link
Contributor Author

We've built and tested this on RedHat 8 (ARM and x86_64), RedHat 9, SLES 15, Ubuntu 20, and Ubuntu 22. Ran extensive tests on RedHat 8 and 9.

Conceptually I think it makes sense to use tirpc if it's available. Part of the problem we observed was that on SLES 15, it detected rpc.h but that came from tirpc, so the build was not configured correctly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants