github-actions[bot] commented on code in PR #66221: URL: https://github.com/apache/doris/pull/66221#discussion_r3709225194
########## thirdparty/test/arrow-paimon-lifecycle-test.sh: ########## @@ -0,0 +1,180 @@ +#!/usr/bin/env bash +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +set -eo pipefail Review Comment: [P2] Wire this lifecycle regression into CI This script is the only coverage for interrupted patch recovery and the new component fingerprints, but no workflow or repository test driver invokes it; an exact-name search finds only the script itself. It also copies only `download-thirdparty.sh` and fabricates installed markers, so it never exercises `build.sh`, `build-thirdparty.sh`, package ordering, or marker publication and missed both current lifecycle failures. Add a lightweight required step for the relevant inputs and extend the harness through the real generic recovery and build-order transitions. ########## thirdparty/build-thirdparty.sh: ########## @@ -2209,6 +2213,8 @@ build_paimon_cpp() { fi echo "Paimon-cpp internal dependencies installed successfully" + rm -f "${TP_INSTALL_DIR}/arrow-paimon-build-fingerprint.txt" + paimon_build_fingerprint >"${TP_INSTALL_DIR}/paimon-build-fingerprint.txt" Review Comment: [P2] Bind this marker to the installed Arrow build `paimon_build_fingerprint` contains the selected Arrow source hash, not proof of the Arrow installation that Paimon just consumed. Since positional package order is preserved, `./build-thirdparty.sh paimon_cpp arrow` builds Paimon against the old installed Arrow and writes the expected Paimon marker, then rebuilds Arrow and writes the expected Arrow marker; `arrow_paimon_prebuilt_valid` subsequently accepts both strings and filenames even though the artifacts are mixed. Require the installed Arrow marker/artifacts to match before configuring or stamping Paimon (or normalize Arrow before Paimon), and test the reversed order. ########## build.sh: ########## @@ -463,6 +473,15 @@ if [[ ! -f "${DORIS_THIRDPARTY}/installed/lib/${LAST_THIRDPARTY_LIB}" ]]; then else bash "${DORIS_THIRDPARTY}/build-thirdparty.sh" -j "${PARALLEL}" --clean fi +elif [[ "${ARROW_PAIMON_THIRDPARTY_VALID}" != "true" ]]; then + echo "Arrow/Paimon thirdparty libraries need to be rebuilt ..." + if [[ "${CLEAN}" -eq 0 ]]; then + bash "${DORIS_THIRDPARTY}/build-thirdparty.sh" -j "${PARALLEL}" \ + arrow paimon_cpp xsimd brotli Review Comment: [P1] Do not dispatch xsimd as a build package Every legacy or otherwise invalid prebuilt now enters this branch, but `build-thirdparty.sh` executes `build_${package}` for each positional package and has no `build_xsimd` function. After rebuilding Arrow and Paimon, this command therefore reaches `build_xsimd: command not found` and exits 127, so the generic stale-prebuilt recovery added here cannot complete. Mirror the macOS path: download `arrow paimon_cpp xsimd brotli` as the source closure, then build only `arrow paimon_cpp` (or add a real xsimd builder), and cover this branch in the lifecycle test. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
