CalvinKirs opened a new pull request, #65990:
URL: https://github.com/apache/doris/pull/65990

   ### What problem does this PR solve?
   
   Issue Number: close #xxx
   
   Related PR: #xxx
   
   Problem Summary:
   
   Upgrade Apache Thrift from 0.16.0 (released 2022) to the latest 0.24.0, for 
both the thirdparty toolchain and the FE Java runtime.
   
   Changes:
   
   - `thirdparty/vars.sh`: bump thrift 0.16.0 -> 0.24.0.
   - Remove both `thrift-0.16-*` patches, they are already included upstream:
     - `fix_mutex_include`: `Mutex.h` includes `<cstdint>` in 0.24.
     - `reset-consumed-message-size`: this was a cherry-pick of upstream 
THRIFT-5492, included since 0.17.
     - Also remove the now-dead 0.16-gated patch block in 
`download-thirdparty.sh`.
   - `fe/pom.xml`: bump libthrift 0.16.0 -> 0.24.0.
   - `fe/fe-thrift/pom.xml`: add `generated_annotations=suppress` to the Java 
generator options. Newer thrift compilers emit `@javax.annotation.Generated` by 
default, which no longer exists on JDK 17; suppressing the annotation avoids 
introducing a new dependency. The option is also supported by thrift 0.16, so 
the change is compatible with both compilers.
   
   Notes:
   
   - FE <-> BE RPC stays wire-compatible across thrift versions 
(TBinaryProtocol is stable), so mixed-version deployments during rollout are 
safe.
   - The BE C++ adaptation to the 0.24 headers/runtime is handled separately in 
a follow-up PR.
   - For developers upgrading an existing local thirdparty in place: remove the 
stale `installed/include/thrift` headers before running `build-thirdparty.sh 
thrift`, otherwise the 0.16 headers in the install prefix shadow the 0.24 
in-tree headers via `-I installed/include` and the lib/cpp build fails. Clean 
CI builds are not affected.
   
   ### Release note
   
   Upgrade Apache Thrift from 0.16.0 to 0.24.0.
   
   ### Check List (For Author)
   
   - Test <!-- At least one of them must be included. -->
       - [ ] Regression test
       - [ ] Unit Test
       - [x] Manual test (add detailed scripts or steps below)
           - Built thrift 0.24.0 via `build-thirdparty.sh thrift` with the 
updated vars.sh; verified `bin/thrift --version`, `libthrift.a` and 
`libthriftnb.a` are produced.
           - Built all 25 FE modules against libthrift 0.24.0 with code 
generated by the 0.24.0 compiler (default `thirdparty/installed/bin/thrift` 
path), zero compile errors.
           - `mvn dependency:tree` shows all `org.apache.thrift:libthrift` 
artifacts across the FE reactor converge to 0.24.0. The Hive metastore client 
is unaffected (its thrift is shaded into `hive-catalog-shade`).
           - Ran `TableQueryPlanActionTest` (exercises real 
TSerializer/TDeserializer round-trip through the `_query_plan` HTTP API): 7/7 
passed.
       - [ ] No need to test or manual test. Explain why:
           - [ ] This is a refactor/code format and no logic has been changed.
           - [ ] Previous test can cover this change.
           - [ ] No code files have been changed.
           - [ ] Other reason <!-- Add your reason?  -->
   
   - Behavior changed:
       - [x] No.
       - [ ] Yes. <!-- Explain the behavior change -->
   
   - Does this need documentation?
       - [x] No.
       - [ ] Yes. <!-- Add document PR link here. eg: 
https://github.com/apache/doris-website/pull/1214 -->
   
   ### Check List (For Reviewer who merge this PR)
   
   - [ ] Confirm the release note
   - [ ] Confirm test cases
   - [ ] Confirm document
   - [ ] Add branch pick label <!-- Add branch pick label that this PR should 
merge into -->
   


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