diff --git a/core/rawdb/freezer_table.go b/core/rawdb/freezer_table.go index 94840affb8..4c9bceb900 100644 --- a/core/rawdb/freezer_table.go +++ b/core/rawdb/freezer_table.go @@ -158,6 +158,7 @@ func newTable(path string, name string, readMeter, writeMeter metrics.Meter, siz } meta, err = openFreezerFileForReadOnly(filepath.Join(path, fmt.Sprintf("%s.meta", name))) if err != nil { + index.Close() return nil, err } } else { @@ -167,6 +168,7 @@ func newTable(path string, name string, readMeter, writeMeter metrics.Meter, siz } meta, err = openFreezerFileForAppend(filepath.Join(path, fmt.Sprintf("%s.meta", name))) if err != nil { + index.Close() return nil, err } } @@ -174,6 +176,8 @@ func newTable(path string, name string, readMeter, writeMeter metrics.Meter, siz // is detected. metadata, err := newMetadata(meta) if err != nil { + meta.Close() + index.Close() return nil, err } // Create the table and repair any past inconsistency diff --git a/core/rawdb/freezer_utils.go b/core/rawdb/freezer_utils.go index 1a549af765..f05e2231ca 100644 --- a/core/rawdb/freezer_utils.go +++ b/core/rawdb/freezer_utils.go @@ -99,6 +99,7 @@ func openFreezerFileForAppend(filename string) (*os.File, error) { } // Seek to end for append if _, err = file.Seek(0, io.SeekEnd); err != nil { + file.Close() return nil, err } return file, nil