github-actions[bot] commented on code in PR #68765:
URL: https://github.com/apache/doris/pull/68765#discussion_r4214154943
##########
build.sh:
##########
@@ -496,21 +495,10 @@ if [[ ! -f
"${DORIS_THIRDPARTY}/installed/lib/${LAST_THIRDPARTY_LIB}" ||
! -f "${DORIS_THIRDPARTY}/installed/include/paimon_rust/paimon.h" ||
! -s "${DORIS_THIRDPARTY}/installed/lib64/libpaimon_c.a" ||
! -s "${DORIS_THIRDPARTY}/installed/include/paimon_rust/paimon.h" ||
- -e "${DORIS_THIRDPARTY}/installed/lib64/.paimon-installing" ]] ||
- ! lance_c_install_is_current "${DORIS_HOME}/thirdparty"
"${DORIS_THIRDPARTY}/installed"; then
- # External trees can be partially updated or pinned to another revision.
Preserve
- # the existing prefix unless their build inputs can produce the requested
Lance version.
- for input in build-thirdparty.sh download-thirdparty.sh vars.sh
lance-install.sh patches/lance-c-foyer.patch; do
- if [[ ! -f "${DORIS_THIRDPARTY}/${input}" || ! -r
"${DORIS_THIRDPARTY}/${input}" ]]; then
- echo "Third-party dependencies require a rebuild, but ${input} is
missing or unreadable." >&2
- echo "Refresh the compilation image or set DORIS_THIRDPARTY to a
complete third-party source tree." >&2
- exit 1
- fi
- done
- if ! expected_lance_fingerprint="$(lance_c_install_fingerprint
"${DORIS_HOME}/thirdparty")" ||
- ! rebuild_lance_fingerprint="$(lance_c_install_fingerprint
"${DORIS_THIRDPARTY}")" ||
- [[ "${rebuild_lance_fingerprint}" != "${expected_lance_fingerprint}"
]]; then
- echo "Lance rebuild sources do not match this checkout; installed
dependencies have been preserved." >&2
+ -e "${DORIS_THIRDPARTY}/installed/lib64/.paimon-installing" ]]; then
Review Comment:
[P2] Keep an incomplete-install signal for the Lance header/archive pair.
`build_lance_c` removes and replaces `include/lance` before
`install_rust_archive` renames the new archive. If that build fails between
those steps, the old `liblance_c.a` still satisfies this gate while its headers
are missing or already describe the new prewarm symbol. A later build skips
repair, leaving an incomplete dependency pair that fails when the new API is
consumed. Please retain a completion marker (or equivalent pair check)
invalidated before header replacement and checked here; also reject empty
archives and headers.
##########
build.sh:
##########
@@ -496,21 +495,10 @@ if [[ ! -f
"${DORIS_THIRDPARTY}/installed/lib/${LAST_THIRDPARTY_LIB}" ||
! -f "${DORIS_THIRDPARTY}/installed/include/paimon_rust/paimon.h" ||
! -s "${DORIS_THIRDPARTY}/installed/lib64/libpaimon_c.a" ||
! -s "${DORIS_THIRDPARTY}/installed/include/paimon_rust/paimon.h" ||
- -e "${DORIS_THIRDPARTY}/installed/lib64/.paimon-installing" ]] ||
- ! lance_c_install_is_current "${DORIS_HOME}/thirdparty"
"${DORIS_THIRDPARTY}/installed"; then
- # External trees can be partially updated or pinned to another revision.
Preserve
- # the existing prefix unless their build inputs can produce the requested
Lance version.
- for input in build-thirdparty.sh download-thirdparty.sh vars.sh
lance-install.sh patches/lance-c-foyer.patch; do
- if [[ ! -f "${DORIS_THIRDPARTY}/${input}" || ! -r
"${DORIS_THIRDPARTY}/${input}" ]]; then
- echo "Third-party dependencies require a rebuild, but ${input} is
missing or unreadable." >&2
- echo "Refresh the compilation image or set DORIS_THIRDPARTY to a
complete third-party source tree." >&2
- exit 1
- fi
- done
- if ! expected_lance_fingerprint="$(lance_c_install_fingerprint
"${DORIS_HOME}/thirdparty")" ||
- ! rebuild_lance_fingerprint="$(lance_c_install_fingerprint
"${DORIS_THIRDPARTY}")" ||
- [[ "${rebuild_lance_fingerprint}" != "${expected_lance_fingerprint}"
]]; then
- echo "Lance rebuild sources do not match this checkout; installed
dependencies have been preserved." >&2
+ -e "${DORIS_THIRDPARTY}/installed/lib64/.paimon-installing" ]]; then
+ # Compilation images may contain only installed artifacts; never erase
them without a rebuild source.
+ if [[ ! -f "${DORIS_THIRDPARTY}/build-thirdparty.sh" ]]; then
Review Comment:
[P2] Validate every rebuild input before removing the installed prefix. An
external `DORIS_THIRDPARTY` tree can contain `build-thirdparty.sh` but lack
`download-thirdparty.sh` or `vars.sh`. If one sentinel is missing, this check
passes, `rm -rf installed` erases the remaining libraries, and the builder
exits at its mandatory-file checks before rebuilding anything. Check those
inputs here before cleanup so a partial compilation image remains recoverable.
--
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]