Skip to content

Revert "[fix](build) Keep Arrow 17 and 24 in shared thirdparty" - #67330

Merged
Gabriel39 merged 1 commit into
masterfrom
revert-66546-worktree/dual-arrow-17-24
Sep 1, 2026
Merged

Revert "[fix](build) Keep Arrow 17 and 24 in shared thirdparty"#67330
Gabriel39 merged 1 commit into
masterfrom
revert-66546-worktree/dual-arrow-17-24

Conversation

@hubgeter

Copy link
Copy Markdown
Contributor

Reverts #66546.
no need this.

@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@hubgeter

Copy link
Copy Markdown
Contributor Author

run buildall

@hubgeter

hubgeter commented Sep 1, 2026

Copy link
Copy Markdown
Contributor Author

/review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Requesting changes: the fresh single-root Arrow/Paimon revert is mechanically coherent, but five supported build and rollout paths remain unsafe.

Accepted findings:

  • P1: a prebuilt produced by this head carries a Paimon semantic marker that live branch-4.1 rejects from the shared automation asset.
  • P1: interrupted dual-to-single recovery can leave root Arrow 24 beside Paimon 17, and direct run-be-ut.sh configuration consumes that root without pair validation.
  • P1: Cloud-only builds are forced through an irrelevant BE Arrow/Paimon preflight and can fail on otherwise sufficient install-only prefixes.
  • P2: standalone compile-bench is normalized after the clean-only exit and dependency gate, so --clean can exit without benchmarking and ordinary runs can skip required preflight.
  • P2: PAIMON_HOME is accepted as a cache/environment input but is ignored by all headers and imported libraries.

Checkpoint conclusions:

  • Goal, scope, and correctness: all 13 changed paths were reviewed. The steady-state single-root files close cleanly, but target classification, explicit-root semantics, cross-branch publication, and failure-safe migration are incomplete.
  • Lifecycle and compatibility: no runtime concurrency, static initialization, transaction, persistence, FE/BE protocol, or data-write change applies. The material lifecycle boundaries are completed artifact publication and the non-atomic intermediate filesystem state; they are separate defects.
  • Configuration, errors, parallel paths, and performance: marker-using paths generally fail closed, while the direct BE unit-test entry point bypasses that boundary and PAIMON_HOME fails silently. Compile-bench is a real BE consumer that skips validation; Cloud is a nonconsumer that incurs unnecessary validation/recovery cost and failure exposure. No runtime hot path is changed.
  • Tests and results: changed shell syntax checks and the retained lifecycle harness passed; no build was run in this review environment. Existing steady-state coverage does not exercise the five negative cases above. The ADBC DBL_MAX display concern was dismissed after tracing the actual JDBC path: FLOAT/DOUBLE values are read with getBytes, so the checked-in raw text remains reachable.
  • Review status: complete after three rounds. The final normal and risk-focused reviewers returned NO_NEW_VALUABLE_FINDINGS; every candidate was accepted, deduplicated, or dismissed with evidence. No live review thread duplicates these comments. There was no additional user-provided focus. Reviewed exact head b3b89e3824301c798cd4bd25f1ab0f9b5e536e7c over base ad179b5afac6a4420729da98a74860c90bf917a7.

Comment thread be/CMakeLists.txt

option(ENABLE_PAIMON_CPP "Enable Paimon C++ integration" ON)
set(PAIMON_HOME "" CACHE PATH "Paimon install prefix")
option(ENABLE_TDE "Enable TDE feature module" OFF)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[P2] Do not accept an ignored Paimon install prefix

This cache/env input no longer selects anything: the PR removes ${PAIMON_HOME}/include, every Paimon archive in be/cmake/thirdparty.cmake now comes from ${THIRDPARTY_DIR}, and no other PAIMON_HOME reference remains. A caller can therefore set a valid custom prefix and silently link the default tree. Either honor the same root consistently for preflight, headers, and libraries, or remove/reject the unsupported override explicitly.

Comment thread build.sh
if [[ "${BUILD_BE}" -eq 1 || "${BUILD_META_TOOL}" == "ON" ||
"${BUILD_FILE_CACHE_MICROBENCH_TOOL}" == "ON" ||
if [[ "${BUILD_BE}" -eq 1 || "${BUILD_CLOUD}" -eq 1 ||
"${BUILD_META_TOOL}" == "ON" || "${BUILD_FILE_CACHE_MICROBENCH_TOOL}" == "ON" ||

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[P1] Do not require the BE Arrow/Paimon stack for Cloud-only builds

cloud/cmake/thirdparty.cmake imports neither Arrow nor Paimon, but this condition makes ./build.sh --cloud validate them anyway. With an external/install-only prefix whose BE stack is stale or absent (including the current layout transition), the build enters rebuild_thirdparty_libraries() and exits because no source builder exists before Cloud configuration starts. Remove BUILD_CLOUD from this BE-stack gate and restore the Cloud-only dispatch case.

Comment thread build.sh
! arrow_paimon_prebuilt_valid "${DORIS_THIRDPARTY}/installed"; then
echo "Arrow/Paimon thirdparty libraries need to be rebuilt ..."
rebuild_thirdparty_libraries false "${ARROW_PAIMON_BUILD_PACKAGES[@]}"
fi

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[P1] Make the shared prebuilt acceptable to live branch-4.1

This rebuild will publish the root Paimon marker 9887cf1ec13106da4250f8d7ea931a258879089c, but live branch-4.1 (211f6165abaf) validates the same automation asset against cb82e41ba46f534e611cdd52e66b53c227d49bf8 and only permits legacy marker dbb6ca6e243cb3aa783b7a8011f97afda9e7ea28. Its staged archive installer therefore rejects a prebuilt produced by this revert before replacing installed; the branch-4.1 dual-layout companion (#67320) was closed. Coordinate a branch-4.1 compatibility update (or preserve a marker it accepts) and cover that live validator contract before publishing the reverted asset.

Comment thread build.sh
# Everything that is not the BE C++ build would only add noise, so force
# a BE-only build regardless of the other options.
BUILD_BE=1
BUILD_FE=0

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[P2] Normalize compile-bench before the clean-only exit

Standalone --compile-bench leaves every BUILD_* target zero until this block. With --clean, the earlier clean-only branch therefore exits successfully without a benchmark; without it, Arrow/Paimon preflight is skipped even though the mode later configures BE (so a stale or dual-layout root is used unvalidated). Move this BE-target normalization before both gates and restore dispatch coverage for standalone and --clean benchmarks.

build_arrow() {
check_if_source_exist "${ARROW_SOURCE}"
invalidate_arrow_prebuilt_marker "${TP_INSTALL_DIR}"
cd "${TP_SOURCE_DIR}/${ARROW_SOURCE}/cpp"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[P1] Invalidate the paired Paimon install before overwriting root Arrow

A dual-layout tree still has Arrow/Paimon 17 in the root. This recovery invalidates only Arrow, installs and publishes root Arrow 24, and does not invalidate or replace root Paimon 17 until build_paimon_cpp() starts. If the process is interrupted in that window, run-be-ut.sh can configure BE directly from the mixed root without calling the pair validator, with Paimon enabled by default; the imported Paimon 17 archives expose Arrow types and are not ABI-safe with Arrow 24. Invalidate/remove the co-located Paimon artifacts before overwriting Arrow (or stage/swap the pair atomically), and add a dual-to-single interruption case covering the direct BE entry point.

@hello-stephen

Copy link
Copy Markdown
Contributor

BE UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 62.81% (29409/46823)
Line Coverage 47.82% (307961/643963)
Region Coverage 43.42% (248700/572778)
Branch Coverage 44.98% (115753/257344)

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100% (0/0) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 76.10% (34499/45335)
Line Coverage 61.07% (388653/636410)
Region Coverage 57.10% (325653/570305)
Branch Coverage 57.98% (148695/256472)

@Gabriel39
Gabriel39 merged commit 33e0c0b into master Sep 1, 2026
35 checks passed
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

PR approved by anyone and no changes requested.

@github-actions github-actions Bot added the approved Indicates a PR has been approved by one committer. label Sep 1, 2026
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

PR approved by at least one committer and no changes requested.

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

Labels

approved Indicates a PR has been approved by one committer. reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants