Reject mixed Flink payloads before image daemons start - #200
Merged
Merged
Conversation
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.
…e' into fail-mixed-image-startup-188
…e' into fail-mixed-image-startup-188
jordepic
marked this pull request as draft
September 19, 2026 12:05
jordepic
marked this pull request as ready for review
September 19, 2026 12:54
jordepic
changed the base branch from
implement-flink118-release-line
to
main
September 19, 2026 16:11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
fd29f1a0passes 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
fd29f1a0before merge89da01cd, 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.