github-actions[bot] commented on code in PR #65990:
URL: https://github.com/apache/doris/pull/65990#discussion_r3701115507


##########
fe/fe-thrift/pom.xml:
##########
@@ -87,7 +87,7 @@ under the License.
                 <artifactId>thrift-maven-plugin</artifactId>
                 <version>0.10.0</version>
                 <configuration>
-                    <generator>java:fullcamel</generator>
+                    
<generator>java:fullcamel,generated_annotations=suppress</generator>

Review Comment:
   Block: this option is accepted by the 0.16 compiler, but the service sources 
that compiler emits are not compatible with `libthrift` 0.24. Exact-head FE UT 
build 1013047 uses the build-environment compiler, resolves the new 0.24 
runtime, and then fails `fe-thrift` with 100 
`ProcessFunction`/`AsyncProcessFunction` generic-arity errors across the 
generated services. Please update and require the 0.24 compiler in every FE 
build environment and supported override atomically with the runtime bump 
(ideally with a fail-fast version check); the current head cannot pass the 
standard FE build.



##########
thirdparty/vars.sh:
##########
@@ -68,10 +68,10 @@ OPENSSL_SOURCE=openssl-OpenSSL_1_1_1s
 OPENSSL_MD5SUM="7e79a7560dee77c0758baa33c61af4b4"
 
 # thrift
-THRIFT_DOWNLOAD="http://archive.apache.org/dist/thrift/0.16.0/thrift-0.16.0.tar.gz";
-THRIFT_NAME=thrift-0.16.0.tar.gz
-THRIFT_SOURCE=thrift-0.16.0
-THRIFT_MD5SUM="44cf1b54b4ec1890576c85804acfa637"
+THRIFT_DOWNLOAD="http://archive.apache.org/dist/thrift/0.24.0/thrift-0.24.0.tar.gz";
+THRIFT_NAME=thrift-0.24.0.tar.gz
+THRIFT_SOURCE=thrift-0.24.0

Review Comment:
   This compiler bump also drives `regression-test/framework`, but that 
standalone POM still pins `libthrift:0.16.0` and generates with 
`java:fullcamel`. A 0.24 compiler emits recursion-depth calls missing from 0.16 
`TProtocol` plus the new service base-class signatures, so the framework will 
no longer compile after a normal third-party rebuild. Please align its 
compiler/runtime and generator options (or pin a compatible compiler 
explicitly) and include the framework compile in upgrade coverage.



##########
thirdparty/build-thirdparty.sh:
##########
@@ -412,9 +412,9 @@ build_thrift() {
     # NOTE(amos): libtool discard -static. --static works.
     ./configure CFLAGS="${cflags}" CXXFLAGS="${cxxflags}" LDFLAGS="${ldflags}" 
LIBS="-lcrypto -ldl -lssl" \
         --prefix="${TP_INSTALL_DIR}" --docdir="${TP_INSTALL_DIR}/doc" 
--enable-static --disable-shared --disable-tests \
-        --disable-tutorial --without-qt4 --without-qt5 --without-csharp 
--without-erlang --without-nodejs --without-nodets --without-swift \
-        --without-lua --without-perl --without-php --without-php_extension 
--without-dart --without-ruby --without-cl \
-        --without-haskell --without-go --without-haxe --without-d 
--without-python -without-java --without-dotnetcore -without-rs --with-cpp \
+        --disable-tutorial --without-c_glib --without-java --without-kotlin 
--without-erlang --without-nodejs --without-nodets \
+        --without-lua --without-python --without-py3 --without-perl 
--without-php --without-php_extension \
+        --without-dart --without-ruby --without-go --without-rs --without-cl 
--without-netstd --without-d --with-cpp \

Review Comment:
   Thrift 0.24 still supports and defaults the Qt5 library probe to enabled. 
Dropping the previous `--without-qt5` means a host with Qt5 and `moc` now 
builds/installs an unused `libthriftqt5`, while current clean CI only covers 
hosts without Qt. Please restore `--without-qt5` so this C++-only third-party 
build produces the same artifacts regardless of the developer/build image.



##########
thirdparty/build-thirdparty.sh:
##########
@@ -412,9 +412,9 @@ build_thrift() {
     # NOTE(amos): libtool discard -static. --static works.
     ./configure CFLAGS="${cflags}" CXXFLAGS="${cxxflags}" LDFLAGS="${ldflags}" 
LIBS="-lcrypto -ldl -lssl" \
         --prefix="${TP_INSTALL_DIR}" --docdir="${TP_INSTALL_DIR}/doc" 
--enable-static --disable-shared --disable-tests \
-        --disable-tutorial --without-qt4 --without-qt5 --without-csharp 
--without-erlang --without-nodejs --without-nodets --without-swift \
-        --without-lua --without-perl --without-php --without-php_extension 
--without-dart --without-ruby --without-cl \
-        --without-haskell --without-go --without-haxe --without-d 
--without-python -without-java --without-dotnetcore -without-rs --with-cpp \
+        --disable-tutorial --without-c_glib --without-java --without-kotlin 
--without-erlang --without-nodejs --without-nodets \

Review Comment:
   The documented in-place `build-thirdparty.sh thrift` upgrade is not safe. 
This build puts `installed/include` before the in-tree headers and never 
removes the 0.16 tree, so it fails as the PR notes. Even after manually 
deleting those headers, replacing only Thrift leaves the installed 
Arrow/Parquet archives compiled against the 0.16 C++ class/vtable definitions 
while 0.24 changes `TProtocol`/`TTransport`. Please make this a fresh/staged 
replacement or automatically clean Thrift-owned files and rebuild its C++ 
reverse dependencies, then cover a 0.16-to-0.24 incremental upgrade.



##########
fe/pom.xml:
##########
@@ -293,7 +293,7 @@ under the License.
         <open-json.version>1.8</open-json.version>
         <junit.version>5.14.1</junit.version>
         <hikaricp.version>6.0.0</hikaricp.version>
-        <thrift.version>0.16.0</thrift.version>
+        <thrift.version>0.24.0</thrift.version>

Review Comment:
   The 0.24 runtime changes message-limit failures from `END_OF_FILE` / 
`MaxMessageSize reached` to `MESSAGE_SIZE_LIMIT` / `Message size exceeds limit: 
...`. Both `ResultReceiver` and `PointQueryExecutor` only text-match the old 
message, so the documented `max_msg_size_of_result_receiver` guidance is lost 
and the existing regression will fail; forwarded failures also render `cause: 
null` because the new type is absent from `TYPE_MSG_MAP`. Please handle 
`MESSAGE_SIZE_LIMIT` by type in both result paths, preserve the actionable 
message, and add it to the forwarding map.



-- 
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