[#9999] metabase: Fix SetMode after db engine change to pebble

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
This commit is contained in:
Dmitrii Stepanov 2024-07-02 23:34:40 +03:00
parent dc3de59616
commit 8a61a9c020

View file

@ -1,8 +1,10 @@
package meta package meta
import ( import (
"context"
"fmt" "fmt"
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/internal/metaerr"
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/shard/mode" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/shard/mode"
) )
@ -17,7 +19,7 @@ func (db *DB) SetMode(m mode.Mode) error {
} }
if !db.mode.NoMetabase() { if !db.mode.NoMetabase() {
if err := db.Close(); err != nil { if err := db.close(); err != nil {
return fmt.Errorf("can't set metabase mode (old=%s, new=%s): %w", db.mode, m, err) return fmt.Errorf("can't set metabase mode (old=%s, new=%s): %w", db.mode, m, err)
} }
} }
@ -27,7 +29,7 @@ func (db *DB) SetMode(m mode.Mode) error {
} else { } else {
err := db.openDB(m) err := db.openDB(m)
if err == nil && !m.ReadOnly() { if err == nil && !m.ReadOnly() {
err = db.Init() err = metaerr.Wrap(db.init(context.TODO(), false))
} }
if err != nil { if err != nil {
return fmt.Errorf("can't set metabase mode (old=%s, new=%s): %w", db.mode, m, err) return fmt.Errorf("can't set metabase mode (old=%s, new=%s): %w", db.mode, m, err)