Skip to content

Add Thrift interpreter RPC contract tests - #5375

Draft
jongyoul wants to merge 1 commit into
apache:masterfrom
jongyoul:codex/grpc-rpc-contract-tests
Draft

Add Thrift interpreter RPC contract tests#5375
jongyoul wants to merge 1 commit into
apache:masterfrom
jongyoul:codex/grpc-rpc-contract-tests

Conversation

@jongyoul

@jongyoul jongyoul commented Aug 3, 2026

Copy link
Copy Markdown
Member

What is this PR for?

This is the first test-only slice (G-01A) of the Server-Interpreter RPC migration work.

The existing RemoteInterpreterServerTest calls the service implementation directly. This PR adds a real Thrift wire characterization test using TSocket, TBinaryProtocol, the generated client, and the generated processor.

It freezes these current control-plane behaviors:

  • init/create/duplicate-create, form type, completion-driven lazy open, interpret, and close
  • a 1 MiB interpret payload
  • concurrent RUNNING status, manual progress, and cancel delivery over a second client connection
  • execution errors returned in the result envelope
  • declared InterpreterRPCException failures kept distinct from a raw Thrift transport failure

This PR does not change production code or behavior. It intentionally characterizes the current Thrift path; it is not yet the transport-neutral harness that later gRPC tests will use.

Out of scope for this slice: callback/event RPCs, pooled-client retry and deadlines, shutdown ambiguity, recovery, Angular/resource/application/library operations, and the legacy open RPC that currently has no production caller.

What type of PR is it?

Improvement

Todos

  • Add deterministic automated coverage for the current Thrift control plane
  • Run the complete zeppelin-interpreter test suite
  • Link the parent Epic and child JIRA before marking this PR ready

What is the Jira issue?

TBD. This is kept as a draft until the planned RPC migration Epic and G-01A child issue are assigned. No JIRA issue was created or modified as part of this PR.

How should this be tested?

./mvnw test -pl zeppelin-interpreter \
  -Dtest=RemoteInterpreterServiceContractTest \
  -Dmaven.gitcommitid.skip=true

./mvnw test -pl zeppelin-interpreter \
  -Dmaven.gitcommitid.skip=true

./mvnw -pl zeppelin-interpreter checkstyle:check \
  -DskipTests \
  -Dmaven.gitcommitid.skip=true \
  -Dcheckstyle.includes='**/RemoteInterpreterServiceContractTest.java'

./mvnw -pl zeppelin-interpreter \
  org.apache.rat:apache-rat-plugin:check \
  -Prat -DskipTests -Dmaven.gitcommitid.skip=true

Local results:

  • contract tests: 3 passed
  • zeppelin-interpreter module: 129 passed
  • Checkstyle for the new file: 0 violations
  • RAT: 0 unapproved licenses

Screenshots (if appropriate)

Not applicable.

Questions:

  • License files do not need an update; this PR adds test source only.
  • There are no production or compatibility changes.
  • User-facing documentation is not needed for this test-only slice.

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.

1 participant