Skip to content

[FLINK-39132] [e2e] Stabilize Kubernetes materialized table test#28531

Open
qiuyanjun888 wants to merge 1 commit into
apache:masterfrom
qiuyanjun888:fix/flink-39132-20260625-084608-a1
Open

[FLINK-39132] [e2e] Stabilize Kubernetes materialized table test#28531
qiuyanjun888 wants to merge 1 commit into
apache:masterfrom
qiuyanjun888:fix/flink-39132-20260625-084608-a1

Conversation

@qiuyanjun888

Copy link
Copy Markdown

What is the purpose of the change

This pull request stabilizes the Kubernetes Materialized Table end-to-end test for FLINK-39132.

The test suspends a continuous materialized table by stopping the Kubernetes application job with a savepoint. The Jira evidence shows that this stop-with-savepoint operation can exceed the default 60s SQL Gateway client timeout. A later linked Azure failure also shows the same test failing during post-test log validation because Hadoop S3A emits a harmless statistics field named stream_write_exceptions=0, which the generic e2e exception grep treats as an exception.

Brief change log

  • Configure the Kubernetes Materialized Table SQL Gateway session with client.timeout = 5min so the stop-with-savepoint operation has enough time in CI.
  • Use a custom log-check action for this test that still checks errors, real exceptions, and non-empty .out files, but allows the zero-valued S3A stream_write_exceptions=0 statistics field.

Verifying this change

This change added targeted validation for the e2e shell-script behavior and can be verified as follows:

  • bash -n flink-end-to-end-tests/test-scripts/test_kubernetes_materialized_table.sh
  • bash -n flink-end-to-end-tests/run-nightly-tests.sh
  • A focused shell harness verified that test_kubernetes_materialized_table.sh check_exceptions passes for the S3A stream_write_exceptions=0 statistics line.
  • The same harness verified that test_kubernetes_materialized_table.sh check_exceptions still fails for a real java.lang.RuntimeException log line.
  • A focused static check verified that the test session options include client.timeout = 5min.
  • git diff --check

I did not run the full Kubernetes e2e test locally because it requires the full Flink distribution plus minikube/kubectl/sudo setup used by CI.

Does this pull request potentially affect one of the following parts:

  • Dependencies (does it add or upgrade a dependency): no
  • The public API, i.e., is any changed class annotated with @Public(Evolving): no
  • The serializers: no
  • The runtime per-record code paths (performance sensitive): no
  • Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: yes, Kubernetes e2e test configuration only
  • The S3 file system connector: no, only the e2e log checker allow-list for a zero-valued S3A metric field

Documentation

  • Does this pull request introduce a new feature? no

Was generative AI tooling used to co-author this PR?
  • Yes (please specify the tool below)

Generated-by: Hermes Agent

@flinkbot

flinkbot commented Jun 25, 2026

Copy link
Copy Markdown
Collaborator

CI report:

Bot commands The @flinkbot bot supports the following commands:
  • @flinkbot run azure re-run the last Azure build

@qiuyanjun888

Copy link
Copy Markdown
Author

This PR is focused on end-to-end Kubernetes materialized table test.

@RocMarshal @MartijnVisser could you please take a look when you have time and advise whether this approach is acceptable for this area and can move forward?

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