[chore](thirdparty) upgrade HADOOP_LIBS_3_4 to hadoop-3.4.2.4-for-doris - #66808
Merged
Conversation
Picks up apache/doris-thirdparty#408: macOS no longer builds libhdfspp. That library does not link there. It is compiled against Homebrew LLVM's libc++ headers, configured with no Apple availability annotations, so std::exception_ptr's post-macOS-14 entry points are emitted whatever -mmacosx-version-min says, while -lc++ still resolves against the SDK's system libc++. Against a macOS 14 SDK that leaves __cxa_init_primary_exception and std::exception_ptr::__from_native_exception_pointer undefined, and the failing dylib takes the whole make down with it - libhdfs.a included. Doris never links libhdfspp (be/CMakeLists.txt sets BUILD_LIBHDFSPP OFF), so the fork now stops after the x-platform object libraries libhdfs pulls out of that tree. libhdfs.a, libhdfs.dylib, libhadoop.dylib, hdfs.h and the jars are unchanged, and Linux is unaffected. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
build-thirdparty.sh adds the hadoop packages to its default package list
under `uname -s == Linux` alone, so no macOS build has ever installed
lib/hadoop_hdfs_3_4 - neither a developer's local prefix, nor the
doris-thirdparty-prebuilt-darwin-{x86_64,arm64} archives, which
apache/doris-thirdparty's automation produces by running this very script
with no package arguments. A macOS prefix carries libhdfs3 and nothing else.
That was correct while hadoop's native build could not complete on a Mac at
all. apache/doris-thirdparty#407 fixed it and hadoop-3.4.2.3-for-doris,
selected since apache#66783, carries the fix, so the 3.4 fork builds here now.
hadoop_libs, the 3.3.6 fork, stays Linux-only: it has none of those fixes,
and nothing built on macOS reads its hadoop_hdfs/ prefix - the BE includes
hadoop_hdfs_3_4/hdfs.h, and the cloud module, the only consumer of the 3.3.6
one, is not built on macOS.
Making the BE link hadoop's libhdfs.a there instead of libhdfs3 is a separate
change: it needs this one first, and needs the published prebuilt archives
rebuilt with it.
Verified on macOS 26.5 / arm64: the default package list now ends with
hadoop_libs_3_4 and still contains no hadoop_libs, and HADOOP_LIBS_3_4 is
already unconditional in TP_ARCHIVES, so the source is downloaded here today
and download-thirdparty.sh needs no change. The package build itself was
verified in apache#66783 - build-thirdparty.sh hadoop_libs_3_4 exits 0 and installs
libhdfs.a plus libhadoop/libhdfs/libhdfspp dylibs, hdfs.h and the jars.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
Author
|
skip buildall |
CalvinKirs
approved these changes
Aug 17, 2026
Contributor
|
PR approved by at least one committer and no changes requested. |
Contributor
|
PR approved by anyone and no changes requested. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What problem does this PR solve?
Related PR: #66783, #66800
Problem Summary:
Picks up apache/doris-thirdparty#408, tagged as
hadoop-3.4.2.4-for-doris. The single change overhadoop-3.4.2.3-for-dorisis that macOS no longer buildslibhdfspp.That library does not link on macOS. It is compiled against Homebrew LLVM's libc++ headers, which are configured with
_LIBCPP_HAS_VENDOR_AVAILABILITY_ANNOTATIONS 0, sostd::exception_ptr's post-macOS-14 entry points are emitted whatever-mmacosx-version-minsays, while-lc++still resolves against the SDK's system libc++. Against a macOS 14 SDK that leaves__cxa_init_primary_exceptionandstd::exception_ptr::__from_native_exception_pointerundefined, and the failing dylib takes the wholemakedown with it —libhdfs.aincluded:Doris never links libhdfspp —
be/CMakeLists.txt:251setsBUILD_LIBHDFSPP OFF— so the fork now stops after the x-platform object librarieslibhdfspulls out of that tree.libhdfs.a,libhdfs.dylib,libhadoop.dylib,hdfs.hand the jars are all unchanged.Linux is unaffected by the fork change, so this bump is a no-op there beyond the new tag. It is a prerequisite for #66800, which is where a macOS third-party build starts producing
lib/hadoop_hdfs_3_4/and therefore where the failure above shows up — on themacos-14runner specifically. Note that master'sbuild-thirdparty.shstill leaveshadoop_libs_3_4out of the macOS package list, so the macOS legs of this PR's CI do not exercise the fork change yet; #66800 is what turns it on.Release note
None
Check List (For Author)
Test
The fork was built end to end on macOS 26.5 / arm64 with the toolchain the macOS CI uses (Homebrew
llvm@20, CMake 3.22.1, JDK 17,MACOSX_DEPLOYMENT_TARGET=12.0) before the tag was cut — hadoop-common-project 9/9, hadoop-hdfs-project 7/7, hadoop-dist allBUILD SUCCESS, producingwith no
libhdfspp.dylib(8.9M previously), andlibhdfs.astill exportinghdfsSetLogger,hdfsGetLastExceptionRootCause,hdfsBuilderSetKerb5Conf,hdfsBuilderSetKeyTabFile,hdfsUnbufferFile,hdfsFileGetReadStatistics,hdfsHSyncandhdfsHFlush.The tarball this PR points at was downloaded twice; the MD5 is stable and the archive unpacks to
doris-thirdparty-hadoop-3.4.2.4-for-doris/asHADOOP_LIBS_3_4_SOURCEexpects.Behavior changed:
Does this need documentation?