diff --git a/server/storage/sqldb.go b/server/storage/sqldb.go index 6d24f92ee..2e2fb76ab 100644 --- a/server/storage/sqldb.go +++ b/server/storage/sqldb.go @@ -295,7 +295,13 @@ func (db *SQLStorage) Delete(gun data.GUN) error { } // CheckHealth asserts that the tuf_files table is present -func (db *SQLStorage) CheckHealth() error { +func (db *SQLStorage) CheckHealth() (err error) { + defer func() { + if r := recover(); r != nil { + err = fmt.Errorf("Panic checking db health: %v", r) + } + }() + tableOk := db.HasTable(&TUFFile{}) if db.Error != nil { return db.Error diff --git a/signer/keydbstore/sql_keydbstore.go b/signer/keydbstore/sql_keydbstore.go index ffb44ad95..ebc4e972c 100644 --- a/signer/keydbstore/sql_keydbstore.go +++ b/signer/keydbstore/sql_keydbstore.go @@ -229,7 +229,13 @@ func (s *SQLKeyDBStore) GetKey(keyID string) data.PublicKey { } // HealthCheck verifies that DB exists and is query-able -func (s *SQLKeyDBStore) HealthCheck() error { +func (s *SQLKeyDBStore) HealthCheck() (err error) { + defer func() { + if r := recover(); r != nil { + err = fmt.Errorf("Panic checking db health: %v", r) + } + }() + dbPrivateKey := GormPrivateKey{} tableOk := s.db.HasTable(&dbPrivateKey) switch {