deps: pin flannel to mirendev fork with subnet-watch compaction fix#874
Merged
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughA Comment |
859761f to
3ec3b49
Compare
evanphx
approved these changes
Jun 30, 2026
Replace github.com/flannel-io/flannel with mirendev/flannel (based on v0.26.7), which carries a fix for the etcd subnet-watch compaction hot-loop (MIR-1274): once a flanneld watch's start revision falls below etcd's compaction horizon, any watch reconnect re-watches from that same compacted revision forever, logging a WARN+INFO pair every few seconds (~7.7 GB/day) and filling runner disks until the node dies. The fork re-lists at a current revision on compaction and advances the resume revision so reconnects move forward. Temporary replace; we'll drop it once the fix is upstreamed to flannel-io/flannel and released. Upstream issue/PR tracked in MIR-1274.
3ec3b49 to
2afd605
Compare
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.
Our toys runners kept filling their disks and dropping out of the cluster, and the culprit turned out to be flannel's etcd subnet-watch (MIR-1274). When a flanneld watch reconnects, it re-watches from its original start revision, which it never advances. That's harmless until etcd compacts past that revision, at which point every reconnect fails with "required revision has been compacted" and the watch re-establishes in a tight loop, logging a WARN+INFO pair every few seconds (~7.7 GB/day for us) until the disk fills and the node dies. It's the legacy etcd subnet manager path, so the far more common kube backend is unaffected, which is why it's gone unnoticed upstream. Long-lived standalone nodes like ours are exactly where it bites.
The real fix lives in flannel, so this change just points us at a fork (mirendev/flannel, based on v0.26.7) carrying the patch: on a compacted watch it re-lists at a current revision and resumes from there instead of hot-looping, and it advances the resume revision as events arrive so an ordinary reconnect moves forward rather than replaying from the frozen start rev. We're upstreaming the same patch to flannel-io/flannel and will drop this replace once it merges and ships in a release.
Part of MIR-1274.