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]

Reply via email to