FUSE Mount: resolve memory leak in Read method goroutine (#7270) (#7282)

* Add defer cancelFunc() to ensure context is always cancelled

* Add ctx.Done() case in goroutine select to prevent goroutine leak

* Fixes memory accumulation issue where goroutines were not properly cleaned up
This commit is contained in:
Jaehoon Kim
2025-10-01 11:09:39 +09:00
committed by GitHub
parent 8d967c0946
commit fc89e97af7

View File

@@ -49,10 +49,14 @@ func (wfs *WFS) Read(cancel <-chan struct{}, in *fuse.ReadIn, buff []byte) (fuse
// Create a context that will be cancelled when the cancel channel receives a signal
ctx, cancelFunc := context.WithCancel(context.Background())
defer cancelFunc()
go func() {
select {
case <-cancel:
cancelFunc()
case <-ctx.Done():
// Context already cancelled, exit goroutine
}
}()