Skip to content

Commit 83f68e0

Browse files
committed
pebble: close the manifest file on Open failure
Fixes: #5063 Fixes: #5062
1 parent 9685dbe commit 83f68e0

File tree

1 file changed

+5
-10
lines changed

1 file changed

+5
-10
lines changed

open.go

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,7 @@ func Open(dirname string, opts *Options) (db *DB, err error) {
134134
if err != nil {
135135
return nil, err
136136
}
137-
defer func() {
138-
if db == nil {
139-
_ = formatVersionMarker.Close()
140-
}
141-
}()
137+
defer maybeCleanUp(formatVersionMarker.Close)
142138

143139
noFormatVersionMarker := formatVersion == FormatDefault
144140
if noFormatVersionMarker {
@@ -172,11 +168,7 @@ func Open(dirname string, opts *Options) (db *DB, err error) {
172168
if err != nil {
173169
return nil, errors.Wrapf(err, "pebble: database %q", dirname)
174170
}
175-
defer func() {
176-
if db == nil {
177-
_ = manifestMarker.Close()
178-
}
179-
}()
171+
defer maybeCleanUp(manifestMarker.Close)
180172

181173
// Atomic markers may leave behind obsolete files if there's a crash
182174
// mid-update. Clean these up if we're not in read-only mode.
@@ -241,6 +233,9 @@ func Open(dirname string, opts *Options) (db *DB, err error) {
241233
if d.objProvider != nil {
242234
_ = d.objProvider.Close()
243235
}
236+
if d.mu.versions.manifestFile != nil {
237+
_ = d.mu.versions.manifestFile.Close()
238+
}
244239
if r != nil {
245240
panic(r)
246241
}

0 commit comments

Comments
 (0)