Include relevant block ID in "block not found" error message. fs-block-not-found-error
authorTom Clegg <tom@curii.com>
Sat, 8 Oct 2022 01:35:36 +0000 (21:35 -0400)
committerTom Clegg <tom@curii.com>
Sat, 8 Oct 2022 01:35:36 +0000 (21:35 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curii.com>

sdk/go/keepclient/block_cache.go

index bac4a24fd5a037d9cdcafb663612677304184c97..89eecc6e276f843d2085b727193c0324ef8d4d03 100644 (file)
@@ -5,6 +5,7 @@
 package keepclient
 
 import (
+       "fmt"
        "io"
        "sort"
        "strconv"
@@ -93,8 +94,11 @@ func (c *BlockCache) Get(kc *KeepClient, locator string) ([]byte, error) {
                                data = make([]byte, size, bufsize)
                                _, err = io.ReadFull(rdr, data)
                                err2 := rdr.Close()
-                               if err == nil {
-                                       err = err2
+                               if err == nil && err2 != nil {
+                                       err = fmt.Errorf("close(): %w", err2)
+                               }
+                               if err != nil {
+                                       err = fmt.Errorf("Get %s: %w", locator, err)
                                }
                        }
                        c.mtx.Lock()