Skip to content

HBASE-30194 [thirdparty] Onboard libthrift to hbase-thirdparty - #160

Merged
apurtell merged 4 commits into
apache:masterfrom
apurtell:HBASE-30194
Jun 8, 2026
Merged

HBASE-30194 [thirdparty] Onboard libthrift to hbase-thirdparty#160
apurtell merged 4 commits into
apache:masterfrom
apurtell:HBASE-30194

Conversation

@apurtell

@apurtellapurtell commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Onboard libthrift to hbase-thirdparty so we can consume libthrift security fixes while maintaining Java 8 compatibility for HBase branch-2, branch-2.5, and branch-2.6.

Co-Authored-by: Claude <noreply@anthropic.com>
@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec0m 0sDocker mode activated.
-1 ❌patch0m 3s#160 does not apply to master. Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/in-progress/precommit-patchnames for help.
SubsystemReport/Notes
Console outputhttps://ci-hbase.apache.org/job/HBase-Thirdparty-PreCommit/job/PR-160/1/console
versionsgit=2.17.1
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@ndimidukndimiduk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the strategy for this one, hard fork? We're going to make changes inline, rather than maintain a stack of patches?

@Apache9

Copy link
Copy Markdown
Contributor

Is it better to follow the protobuf way, where we depend on the specific version and while building, we pull in the source tarball, extract it, apply our patches and then compile it?

@ndimiduk

Copy link
Copy Markdown
Member

Is it better to follow the protobuf way, where we depend on the specific version and while building, we pull in the source tarball, extract it, apply our patches and then compile it?

I considered suggesting that approach, but i'm afraid that significant refactoring will be necessary to change this dependency. Managing that through patch files will be painful.

@apurtell

apurtell commented Jun 2, 2026

Copy link
Copy Markdown
ContributorAuthor

Is it better to follow the protobuf way, where we depend on the specific version and while building, we pull in the source tarball, extract it, apply our patches and then compile it?

I allowed the modified source to be checked in but we don't need it. When I looked over at hbase-shaded-protobuf in tree I saw the sources expanded in tree there and thought maybe things had changed in thirdparty since I was last here.

Now there are only 7 modified files.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec2m 4sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 1sNo case conflicting files found.
+0 🆗codespell0m 1scodespell was not available.
+0 🆗detsecrets0m 1sdetect-secrets was not available.
+0 🆗shelldocs0m 0sShelldocs was not available.
+0 🆗spotbugs0m 0sspotbugs executables are not available.
+0 🆗markdownlint0m 0smarkdownlint was not available.
+1 💚@author0m 0sThe patch does not contain any @author tags.
-0 ⚠️test4tests0m 0sThe patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ master Compile Tests _
+1 💚mvninstall1m 1smaster passed
+1 💚compile0m 16smaster passed
+1 💚checkstyle0m 28smaster passed
+1 💚javadoc0m 7smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 7sMaven dependency ordering for patch
+1 💚mvninstall0m 52sthe patch passed
+1 💚compile0m 26sthe patch passed
+1 💚javac0m 26sthe patch passed
-1 ❌blanks0m 0s/blanks-eol.txtThe patch has 8 line(s) that end in blanks. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply
-1 ❌checkstyle0m 26s/results-checkstyle-hbase-shaded-thrift.txthbase-shaded-thrift: The patch generated 6068 new + 0 unchanged - 0 fixed = 6068 total (was 0)
-1 ❌checkstyle0m 42s/results-checkstyle-root.txtroot: The patch generated 6068 new + 0 unchanged - 0 fixed = 6068 total (was 0)
+1 💚shellcheck0m 0sNo new issues.
+1 💚xmllint0m 0sNo new issues.
+1 💚javadoc0m 12sthe patch passed
_ Other Tests _
+1 💚unit0m 7shbase-shaded-thrift in the patch passed.
+1 💚unit0m 50sroot in the patch passed.
-1 ❌asflicense0m 11s/results-asflicense.txtThe patch generated 10 ASF License warnings.
8m 50s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-Thirdparty-PreCommit/job/PR-160/2/artifact/yetus-precommit-check/output/Dockerfile
GITHUB PR#160
Optional Testsdupname asflicense codespell detsecrets javac javadoc unit xmllint compile shellcheck shelldocs spotbugs checkstyle markdownlint
unameLinux 78abbb6af45d 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personality/home/jenkins/jenkins-home/workspace/Base-Thirdparty-PreCommit_PR-160/yetus-precommit-check/src/.yetus/personality.sh
git revisionmaster / b1b7485
Default JavaEclipse Adoptium-17.0.11+9
Test Resultshttps://ci-hbase.apache.org/job/HBase-Thirdparty-PreCommit/job/PR-160/2/testReport/
Max. process+thread count420 (vs. ulimit of 2000)
modulesC: hbase-shaded-thrift . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-Thirdparty-PreCommit/job/PR-160/2/console
versionsgit=2.34.1 maven=called shellcheck=0.8.0 xmllint=20913
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@apurtell

apurtell commented Jun 2, 2026

Copy link
Copy Markdown
ContributorAuthor

Because of the change history of this PR the asflicense and checkstyle checks are posting false positives, apologies for that.
The blanks check is finding real blanks in the patch files, but that seems fine here.

@PDavidPDavid left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very cool, many thanks. 👍

Comment threadhbase-shaded-thrift/pom.xml Outdated
@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec1m 5sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+0 🆗codespell0m 0scodespell was not available.
+0 🆗detsecrets0m 0sdetect-secrets was not available.
+0 🆗shelldocs0m 0sShelldocs was not available.
+0 🆗spotbugs0m 1sspotbugs executables are not available.
+0 🆗markdownlint0m 1smarkdownlint was not available.
+1 💚@author0m 0sThe patch does not contain any @author tags.
-0 ⚠️test4tests0m 0sThe patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ master Compile Tests _
+1 💚mvninstall0m 52smaster passed
+1 💚compile0m 12smaster passed
+1 💚checkstyle0m 21smaster passed
+1 💚javadoc0m 6smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 5sMaven dependency ordering for patch
+1 💚mvninstall0m 38sthe patch passed
+1 💚compile0m 25sthe patch passed
+1 💚javac0m 25sthe patch passed
-1 ❌blanks0m 0s/blanks-eol.txtThe patch has 8 line(s) that end in blanks. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply
-1 ❌checkstyle0m 19s/results-checkstyle-hbase-shaded-thrift.txthbase-shaded-thrift: The patch generated 6068 new + 0 unchanged - 0 fixed = 6068 total (was 0)
-1 ❌checkstyle0m 30s/results-checkstyle-root.txtroot: The patch generated 6068 new + 0 unchanged - 0 fixed = 6068 total (was 0)
+1 💚shellcheck0m 0sNo new issues.
+1 💚xmllint0m 0sNo new issues.
+1 💚javadoc0m 10sthe patch passed
_ Other Tests _
+1 💚unit0m 7shbase-shaded-thrift in the patch passed.
+1 💚unit0m 41sroot in the patch passed.
-1 ❌asflicense0m 10s/results-asflicense.txtThe patch generated 10 ASF License warnings.
6m 25s
SubsystemReport/Notes
DockerClientAPI=1.48 ServerAPI=1.48 base: https://ci-hbase.apache.org/job/HBase-Thirdparty-PreCommit/job/PR-160/3/artifact/yetus-precommit-check/output/Dockerfile
GITHUB PR#160
Optional Testsdupname asflicense codespell detsecrets javac javadoc unit xmllint compile shellcheck shelldocs spotbugs checkstyle markdownlint
unameLinux 10b1865cdae7 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personality/home/jenkins/workspace/Base-Thirdparty-PreCommit_PR-160/yetus-precommit-check/src/.yetus/personality.sh
git revisionmaster / 809eac6
Default JavaEclipse Adoptium-17.0.11+9
Test Resultshttps://ci-hbase.apache.org/job/HBase-Thirdparty-PreCommit/job/PR-160/3/testReport/
Max. process+thread count418 (vs. ulimit of 2000)
modulesC: hbase-shaded-thrift . U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-Thirdparty-PreCommit/job/PR-160/3/console
versionsgit=2.34.1 maven=called shellcheck=0.8.0 xmllint=20913
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@apurtell

Copy link
Copy Markdown
ContributorAuthor

Will merge in a few hours unless objection. Thanks everyone for the reviews and approvals.

@Apache9

Copy link
Copy Markdown
Contributor

Because of the change history of this PR the asflicense and checkstyle checks are posting false positives, apologies for that. The blanks check is finding real blanks in the patch files, but that seems fine here.

We can exclude these files from rat license check.

<exclude>**/src/main/patches/**</exclude>

And on the patch file, when processing protobuf, it is fine to just strip the ending blanks, it does not break the patching process.

Thanks.

@PDavidPDavid left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Many thanks! 👍

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@apurtell@Apache-HBase@Apache9@ndimiduk@PDavid@NihalJain