From 3bfe99d3d855a03a806dc66c8c215ba69d2dd67b Mon Sep 17 00:00:00 2001 From: Ophestra Date: Wed, 18 Feb 2026 20:00:32 +0900 Subject: internal/lockedfile: keep objects alive while stopping cleanups Fixes https://go.dev/issues/74780. Signed-off-by: Ophestra --- internal/lockedfile/lockedfile.go | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'internal/lockedfile/lockedfile.go') diff --git a/internal/lockedfile/lockedfile.go b/internal/lockedfile/lockedfile.go index 8bd2ffbe..f48124ff 100644 --- a/internal/lockedfile/lockedfile.go +++ b/internal/lockedfile/lockedfile.go @@ -94,6 +94,11 @@ func (f *File) Close() error { err := closeFile(f.osFile.File) f.cleanup.Stop() + // f may be dead at the moment after we access f.cleanup, + // so the cleanup can fire before Stop completes. Keep f + // alive while we call Stop. See the documentation for + // runtime.Cleanup.Stop. + runtime.KeepAlive(f) return err } -- cgit v1.3.1