Skip to content

Reject mixed Flink payloads before image daemons start - #200

Merged
jordepic merged 8 commits into
mainfrom
fail-mixed-image-startup-188
Sep 19, 2026
Merged

jordepic merged 8 commits into
mainfrom
fail-mixed-image-startup-188

Conversation

@jordepic

@jordepic jordepic commented Sep 19, 2026

Copy link
Copy Markdown
Collaborator

Images now validate the installed loader, core and extension Flink-line metadata before starting JobManager or TaskManager. A mixed or unmarked payload exits immediately with an actionable diagnostic, including both lines for a mismatch. Valid images retain Flink's normal entrypoint and default command.

Builds on the compatibility support merged in #198. Advances the mixed-payload portion of #188; cross-line canonical savepoint upgrades and Podman execution remain unverified, so #188 stays open.

Local validation of the startup implementation at 9eee1c16 (unchanged by subsequent base merges): seven packaged-loader tests on each Flink line and four Docker startup cases on each line (valid payload, opposite-line loader/core, and opposite-line renamed extension), all passing with a fresh optimized mimalloc core. Strict docs also pass. These local container tests exercise metadata admission with locally packaged macOS payloads and make no native SQL claim. CI builds Linux payloads and runs the full image SQL test alongside the startup cases.

Fresh Linux CI on fd29f1a0 passes all six image tests on each line with zero skips: four mixed-payload/startup cases, native extension loading, and native SQL in a real Session cluster. Both jobs build optimized mimalloc payloads on the supported glibc baseline.

All 47 checks passed on fd29f1a0 before merge 89da01cd, including both required aggregate gates. Both complete upstream runtime suites also pass: 1.18 has 5,661 passed, 25 upstream skips and all 65 execution contracts; 2.2 has 8,571 passed, 48 upstream skips and all 77 execution contracts. No failures or errors occurred. The merged main tree is identical to the tested PR tree.

Validate the host ABI, embedded core and every installed StreamFusion payload before delegating daemon startup to Flink’s original entrypoint. Reuse the loader’s identity checks without creating the planner or loading native libraries, and name the target line explicitly in host-version errors.

Real container tests modify only identity metadata in the packaged loader, core and a renamed extension, and require nonzero exit before the JobManager launches. Matching payloads must reach the JobManager REST endpoint. Both 1.18 and 2.2 pass all four startup cases; all eleven packaged-loader tests pass on each line. Strict documentation builds successfully. Tests used Docker; Podman and cross-line savepoint upgrades remain unverified. Refs #188.
@jordepic
jordepic marked this pull request as draft September 19, 2026 12:05
@jordepic
jordepic changed the base branch from implement-flink118-release-line to main September 19, 2026 16:11
@jordepic
jordepic merged commit 89da01c into main Sep 19, 2026
47 checks passed
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