Skip to content

deps: pin flannel to mirendev fork with subnet-watch compaction fix#874

Merged
phinze merged 1 commit into
mainfrom
phinze/mir-1274-flannel-compaction-fix
Jun 30, 2026
Merged

deps: pin flannel to mirendev fork with subnet-watch compaction fix#874
phinze merged 1 commit into
mainfrom
phinze/mir-1274-flannel-compaction-fix

Conversation

@phinze

@phinze phinze commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

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.

@phinze phinze requested a review from a team as a code owner June 30, 2026 15:14
@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d3b2a69c-52da-4693-afba-57f5b52292f7

📥 Commits

Reviewing files that changed from the base of the PR and between 3ec3b49 and 2afd605.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (1)
  • go.mod
🚧 Files skipped from review as they are similar to previous changes (1)
  • go.mod

📝 Walkthrough

Walkthrough

A replace directive is added to go.mod to override github.com/flannel-io/flannel with a temporary fork at github.com/mirendev/flannel version v0.26.8-0.20260629222157-b2c268bfe6ae. Inline comments identify the fork as carrying an etcd subnet-watch compaction-recovery fix and reference tracking issue MIR-1274.


Comment @coderabbitai help to get the list of available commands.

@phinze phinze force-pushed the phinze/mir-1274-flannel-compaction-fix branch from 859761f to 3ec3b49 Compare June 30, 2026 15:30
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.
@phinze phinze force-pushed the phinze/mir-1274-flannel-compaction-fix branch from 3ec3b49 to 2afd605 Compare June 30, 2026 19:59
@phinze phinze merged commit a5ae843 into main Jun 30, 2026
17 checks passed
@phinze phinze deleted the phinze/mir-1274-flannel-compaction-fix branch June 30, 2026 20:46
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