From efdfeaba44fdf68ec322cb0b2e0f1d5aa3a7821d Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sat, 18 Jul 2026 13:57:24 -0700 Subject: [PATCH] cassandra: do not mask KvGet backend errors as not-found (#10361) * cassandra: do not mask KvGet backend errors as not-found * use errors.Is for the gocql sentinel check --- weed/filer/cassandra/cassandra_store_kv.go | 4 +++- weed/filer/cassandra2/cassandra_store_kv.go | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/weed/filer/cassandra/cassandra_store_kv.go b/weed/filer/cassandra/cassandra_store_kv.go index a3023e163..bdce1f78b 100644 --- a/weed/filer/cassandra/cassandra_store_kv.go +++ b/weed/filer/cassandra/cassandra_store_kv.go @@ -3,6 +3,7 @@ package cassandra import ( "context" "encoding/base64" + "errors" "fmt" gocql "github.com/apache/cassandra-gocql-driver/v2" @@ -27,9 +28,10 @@ func (store *CassandraStore) KvGet(ctx context.Context, key []byte) (data []byte if err := store.session.Query( "SELECT meta FROM filemeta WHERE directory=? AND name=?", dir, name).Scan(&data); err != nil { - if err != gocql.ErrNotFound { + if errors.Is(err, gocql.ErrNotFound) { return nil, filer.ErrKvNotFound } + return nil, fmt.Errorf("kv get: %w", err) } if len(data) == 0 { diff --git a/weed/filer/cassandra2/cassandra_store_kv.go b/weed/filer/cassandra2/cassandra_store_kv.go index 31b351160..d97235fd9 100644 --- a/weed/filer/cassandra2/cassandra_store_kv.go +++ b/weed/filer/cassandra2/cassandra_store_kv.go @@ -3,6 +3,7 @@ package cassandra2 import ( "context" "encoding/base64" + "errors" "fmt" gocql "github.com/apache/cassandra-gocql-driver/v2" @@ -28,9 +29,10 @@ func (store *Cassandra2Store) KvGet(ctx context.Context, key []byte) (data []byt if err := store.session.Query( "SELECT meta FROM filemeta WHERE dirhash=? AND directory=? AND name=?", util.HashStringToLong(dir), dir, name).Scan(&data); err != nil { - if err != gocql.ErrNotFound { + if errors.Is(err, gocql.ErrNotFound) { return nil, filer.ErrKvNotFound } + return nil, fmt.Errorf("kv get: %w", err) } if len(data) == 0 {