From 309340a8ecebc312149f038b8ab41f594f44fbf9 Mon Sep 17 00:00:00 2001 From: Lee Bousfield Date: Tue, 27 Aug 2024 14:03:04 -0500 Subject: [PATCH] Return false if nil is passed to IsNotExistError --- util/dbutil/dbutil.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/util/dbutil/dbutil.go b/util/dbutil/dbutil.go index ca0f5aaaeb..6573c5742c 100644 --- a/util/dbutil/dbutil.go +++ b/util/dbutil/dbutil.go @@ -6,7 +6,7 @@ package dbutil import ( "errors" "fmt" - "os" + "io/fs" "regexp" "github.com/cockroachdb/pebble" @@ -22,13 +22,15 @@ func IsErrNotFound(err error) bool { var pebbleNotExistErrorRegex = regexp.MustCompile("pebble: database .* does not exist") func isPebbleNotExistError(err error) bool { - return pebbleNotExistErrorRegex.MatchString(err.Error()) + return err != nil && pebbleNotExistErrorRegex.MatchString(err.Error()) } func isLeveldbNotExistError(err error) bool { - return os.IsNotExist(err) + return errors.Is(err, fs.ErrNotExist) } +// IsNotExistError returns true if the error is a "database not found" error. +// It must return false if err is nil. func IsNotExistError(err error) bool { return isLeveldbNotExistError(err) || isPebbleNotExistError(err) }