Skip to content

[LIVY-1093][THRIFT] Upgrade Hive to 4.0.1 for thriftserver - #568

Open
nileshrathi345 wants to merge 1 commit into
apache:masterfrom
nileshrathi345:LIVY-1093
Open

nileshrathi345 wants to merge 1 commit into
apache:masterfrom
nileshrathi345:LIVY-1093

Conversation

@nileshrathi345

@nileshrathi345 nileshrathi345 commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

This PR bumps hive.version from 3.0.0 to 4.0.1 for the Thrift server and related modules. It builds on LIVY-1091 (libthrift 0.25.0 for CVE-2026-43869). Hive 3.0.0 was compiled against libthrift 0.9.3; Hive 4.0.1 uses libthrift 0.16.0 and Java 8, which fits Livy's -Pspark3 / JDK 8 CI leg while Livy continues to run libthrift 0.25 on the server classpath.

  • Hive 4 API compatibility: commons-lang3 usage, PasswdAuthenticationProvider.Authenticate (capital A in 4.0.1), and stubs for UploadData / DownloadData. Response structs require operationHandle; a placeholder handle is set with the unsupported status so Thrift serialization succeeds and the client connection is not dropped.
  • Hive 4 JDBC packaging: hive-jdbc:standalone for the beeline client module. For thriftserver and integration-test, the thin hive-jdbc jar is supplemented with test-scoped hive-common and hive-serde (Hive 4.x does not pull these via Maven transitives). Do not use standalone on the server IT classpath—it relocates libthrift and conflicts with compile-scoped hive-service-rpc.
  • HTTP integration tests: Test-only THttpClient with the HttpClient 4.x constructor expected by Hive JDBC when the IT JVM loads org.apache.thrift. The production HTTP server uses ThriftHttpServlet, not libthrift THttpClient.

JIRA: https://issues.apache.org/jira/browse/LIVY-1093
Related: https://issues.apache.org/jira/browse/LIVY-1091 (libthrift 0.25.0)

How was this patch tested?

  • livy-thriftserver unit and integration tests, including new coverage for TLS (binary and HTTP), UploadData / DownloadData, max message size, and LibthriftHttpCompatSuite. .
  • Full verify (Spark 3 profile):
    mvn -Pthriftserver -Pspark3 -Pscala-2.12 -B verify

Was this patch authored or co-authored using generative AI tooling?

Co-authored by: Cursor AI (Claude Opus 4.8)

@nileshrathi345

Copy link
Copy Markdown
Contributor Author

@gyogal and @roczei
could you please take a look when possible and review
thanks..!!!!

Bump hive.version from 3.0.0 to 4.0.1 so the Thrift server aligns with
libthrift 0.25.0 (LIVY-1091). Hive 3.0.0 was built for libthrift 0.9.3;
Hive 4.0.1 targets libthrift 0.16.0 and Java 8.

- Adapt to Hive 4 APIs: commons-lang3, PasswdAuthenticationProvider.Authenticate,
  UploadData/DownloadData stubs with placeholder operationHandle.
- hive-jdbc:standalone for beeline; hive-common/hive-serde at test scope for IT.
- Test-only THttpClient (HttpClient 4.x); TLS and protocol IT coverage.
@gyogal

gyogal commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Thanks for your PR @nileshrathi345! Since this seems to be closely related to #567, I wonder if it would make sense to merge the two commits into a single PR? Please let me know your thoughts on this.

@nileshrathi345

Copy link
Copy Markdown
Contributor Author

Thanks for your PR @nileshrathi345! Since this seems to be closely related to #567, I wonder if it would make sense to merge the two commits into a single PR? Please let me know your thoughts on this.

Thanks @gyogal — agreed. I'll add the #568 commit(s) into #567 and close this PR once #567 is updated.

This branch has not been deployed

No deployments
Sign up for free to 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.

2 participants