diff --git a/cmd/koinos-block-store/main.go b/cmd/koinos-block-store/main.go index 33b1f7a..c9c8fed 100644 --- a/cmd/koinos-block-store/main.go +++ b/cmd/koinos-block-store/main.go @@ -70,7 +70,8 @@ func main() { logFilename := path.Join(util.GetAppDir(*baseDir, appName), logDir, "block_store.log") err := log.InitLogger(*logLevel, false, logFilename, appID) if err != nil { - panic(fmt.Sprintf("Invalid log-level: %s. Please choose one of: debug, info, warn, error", *logLevel)) + fmt.Sprintf("Invalid log-level: %s. Please choose one of: debug, info, warn, error", *logLevel) + os.Exit(1) } // Costruct the db directory and ensure it exists @@ -80,14 +81,20 @@ func main() { var opts = badger.DefaultOptions(dbDir) opts.Logger = bstore.KoinosBadgerLogger{} - var backend = bstore.NewBadgerBackend(opts) + backend, err := bstore.NewBadgerBackend(opts) + + if err != nil { + log.Errorf("Could not open database, %s", err.Error()) + os.Exit(1) + } // Reset backend if requested if *reset { log.Info("Resetting database") err := backend.Reset() if err != nil { - panic(fmt.Sprintf("Error resetting database: %s\n", err.Error())) + log.Errorf("Could not reset database, %s", err.Error()) + os.Exit(1) } } diff --git a/internal/bstore/badger_backend.go b/internal/bstore/badger_backend.go index 6dccaf5..64bdbac 100644 --- a/internal/bstore/badger_backend.go +++ b/internal/bstore/badger_backend.go @@ -14,9 +14,9 @@ type BadgerBackend struct { } // NewBadgerBackend BadgerBackend constructor -func NewBadgerBackend(opts badger.Options) *BadgerBackend { - badgerDB, _ := badger.Open(opts) - return &BadgerBackend{DB: badgerDB} +func NewBadgerBackend(opts badger.Options) (*BadgerBackend, error) { + badgerDB, err := badger.Open(opts) + return &BadgerBackend{DB: badgerDB}, err } // Close cleans backend resources diff --git a/internal/bstore/reqhandler_test.go b/internal/bstore/reqhandler_test.go index 6d1f91d..aaf78ea 100644 --- a/internal/bstore/reqhandler_test.go +++ b/internal/bstore/reqhandler_test.go @@ -37,7 +37,7 @@ func NewBackend(backendType int) BlockStoreBackend { panic("unable to create temp directory") } opts := badger.DefaultOptions(dirname) - backend = NewBadgerBackend(opts) + backend, _ = NewBadgerBackend(opts) break default: panic("unknown backend type")