orchestrator: NFS-cache "cache path is not set" WARN logged on every build/launch instead of once

Offen Anfängerfreundlich
#3,786 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 2 Tagen

@AdaAibaby arbeitet bereits daran.

Seit 02.11.2026.

  • #3787 von @AdaAibaby — offen

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
72/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
go
Bereich
backend

Rechercherichtung

Beginne mit den beiden in dem Issue genannten Aufrufstellen: der useNFSCache-Prüfung um packages/orchestrator/pkg/template/build/builder.go:304 und der um packages/orchestrator/pkg/sandbox/template/cache.go:1218. Der vorgeschlagene Helper gehört in packages/shared/pkg/storage neben storage.WrapInNFSCache. Fertig ist, wenn die Warnung pro Prozess genau einmal erscheint, ihr Text besagt, dass das NFS-Caching deaktiviert bleibt, bis das Cache-Verzeichnis gesetzt ist, und ein Unit-Test das Verhalten „nur einmal“ abdeckt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Summary

When an NFS-cache feature flag is enabled but no cache path is configured, the orchestrator logs WARN "NFSCache feature flag is enabled but cache path is not set" on the hot path — once per template build, per sandbox launch, and per snapshot resume — and NFS caching is silently disabled. On a dev-default deployment this floods the logs (hundreds of identical lines observed) while telling the operator nothing new after the first line.

Why it happens by default

Three flags default to env.IsDevelopment() (i.e. on in dev):

  • use-nfs-for-building-templates (UseNFSCacheForBuildingTemplatesFlag)
  • use-nfs-for-snapshots (SnapshotFeatureFlag)
  • use-nfs-for-templates (TemplateFeatureFlag)

If the shared chunk cache dir is not set (common in a plain dev bring-up), each of the two call sites warns on every operation:

  • packages/orchestrator/pkg/template/build/builder.go:304 (useNFSCache, per build)
  • packages/orchestrator/pkg/sandbox/template/cache.go:1218 (useNFSCache, per launch/resume)

Both emit the identical message, and both return "cache disabled". So the warning is pure repetition — the path comes from immutable config and won't change within a process.

Proposal

Emit the warning once per process instead of on every operation, and make the message state the consequence (NFS caching disabled until the cache dir is configured). A shared WarnNFSCachePathUnsetOnce(ctx) in packages/shared/pkg/storage (already imported by both call sites, since both call storage.WrapInNFSCache) guarded by sync.Once keeps it to a single line and removes the duplicated string. Behavior (cache disabled) is unchanged.

Happy to send the PR (small, with a unit test).

Vorherrschende Sprache
Go
Sterne
1.8k
Forks
503
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus e2b-dev/runtime

Alle Issues in e2b-dev/runtime

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.