MartijnVisser opened a new pull request, #28312:
URL: https://github.com/apache/flink/pull/28312
## What is the purpose of the change
The JUnit5 migration (FLINK-39124, #27669) converted `IPv6HostnamesITCase`
from a JUnit4 `@Rule MiniClusterWithClientResource(...
.setConfiguration(getConfiguration()) ...)` to a static `@RegisterExtension
MiniClusterExtension(...)` with a hardcoded configuration, dropping the call to
`getConfiguration()`. That method (a) bound the cluster to a local IPv6 address
and (b) skipped the test (via an IPv6 assumption) when no non-loopback IPv6
address is available.
After the migration `getConfiguration()` became dead code, so the test runs
unconditionally and without IPv6 configuration, and fails under the
AdaptiveScheduler because the job uses
`GlobalWindows.createWithEndOfStreamTrigger()` -- a blocking (non-pipelined)
data exchange the AdaptiveScheduler does not support. It has failed every
nightly `test_cron_adaptive_scheduler` build on `master` since ~2026-04-15.
`release-2.0`/`release-2.1` still call `getConfiguration()`, so they skip the
test on CI agents without IPv6 and stay green.
This restores the IPv6 configuration and the skip guard, and additionally
tags the test so it is excluded from the adaptive profile even when an IPv6
address is available.
## Brief change log
- Resolve the IPv6 address once at class load (`IPV6_ADDRESS`).
- Configure the `MiniClusterExtension` with the IPv6 address when present
(restoring IPv6 binding).
- Self-skip `testClusterWithIPv6host` via
`assumeThat(IPV6_ADDRESS).isNotNull()` when no IPv6 address is available.
- Tag the test with
`@Tag("org.apache.flink.testutils.junit.FailsWithAdaptiveScheduler")`, since
the blocking exchange is genuinely incompatible with the AdaptiveScheduler.
## Verifying this change
This change is already covered by the existing
`IPv6HostnamesITCase.testClusterWithIPv6host`. It was verified locally:
- Under the default scheduler on a host with a non-loopback IPv6 address:
`Tests run: 1, Failures: 0, Errors: 0` (the test again exercises IPv6 binding);
on a host without IPv6 it self-skips.
- Under `-Penable-adaptive-scheduler`: the test is excluded by the tag
(`Tests run: 0`), so the adaptive nightly leg is green.
## 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: no (test-only change)
- The S3 file system connector: no
## Documentation
- Does this pull request introduce a new feature? no
- If yes, how is the feature documented? not applicable
---
##### Was generative AI tooling used to co-author this PR?
- [X] Yes (Claude Code (Claude Opus 4.8))
Generated-by: Claude Code (Claude Opus 4.8)
--
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]