From 4aa5d5cd37649b26d442147e9c2b79e330ba1a2f Mon Sep 17 00:00:00 2001 From: Steven Date: Tue, 7 Nov 2023 16:50:43 +0800 Subject: [PATCH] fix (prover): close file handles used in prover (#1007) Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> --- prover/core/prover.go | 5 +++++ prover/core/prover_test.go | 2 ++ 2 files changed, 7 insertions(+) diff --git a/prover/core/prover.go b/prover/core/prover.go index 21302fae2..6cd29bfeb 100644 --- a/prover/core/prover.go +++ b/prover/core/prover.go @@ -236,6 +236,11 @@ func (p *ProverCore) mayDumpProof(id string, proofByt []byte) error { if err != nil { return err } + defer func() { + if err = f.Close(); err != nil { + log.Error("failed to close proof dump file", "id", id, "error", err) + } + }() log.Info("Saving proof", "task-id", id) _, err = f.Write(proofByt) return err diff --git a/prover/core/prover_test.go b/prover/core/prover_test.go index 6e36fea1c..12fd1a56b 100644 --- a/prover/core/prover_test.go +++ b/prover/core/prover_test.go @@ -92,6 +92,7 @@ func TestFFI(t *testing.T) { func readChunkTrace(filePat string, as *assert.Assertions) []*types.BlockTrace { f, err := os.Open(filePat) as.NoError(err) + defer as.NoError(f.Close()) byt, err := io.ReadAll(f) as.NoError(err) @@ -104,6 +105,7 @@ func readChunkTrace(filePat string, as *assert.Assertions) []*types.BlockTrace { func readVk(filePat string, as *assert.Assertions) string { f, err := os.Open(filePat) as.NoError(err) + defer as.NoError(f.Close()) byt, err := io.ReadAll(f) as.NoError(err)