14397: Improve error reporting.
authorTom Clegg <tclegg@veritasgenetics.com>
Fri, 9 Nov 2018 20:02:54 +0000 (15:02 -0500)
committerTom Clegg <tclegg@veritasgenetics.com>
Mon, 12 Nov 2018 15:41:34 +0000 (10:41 -0500)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg@veritasgenetics.com>

services/keepstore/s3_volume.go
services/keepstore/trash_worker.go

index f78084dbcf0ce0c9ae5cf2c9f02724217f9ff2bb..ae1342512171419d93052c97209cca1b9e7cf73a 100644 (file)
@@ -624,8 +624,10 @@ func (v *S3Volume) safeCopy(dst, src string) error {
                MetadataDirective: "REPLACE",
        }, v.bucket.Name+"/"+src)
        err = v.translateError(err)
-       if err != nil {
+       if os.IsNotExist(err) {
                return err
+       } else if err != nil {
+               return fmt.Errorf("PutCopy(%q ← %q): %s", dst, v.bucket.Name+"/"+src, err)
        }
        if t, err := time.Parse(time.RFC3339Nano, resp.LastModified); err != nil {
                return fmt.Errorf("PutCopy succeeded but did not return a timestamp: %q: %s", resp.LastModified, err)
index cbb831ebc000849c71fedd945a4574ea6f4f1171..8a9fedfb7007ca21ef1d5d2e482ce66464fafe1a 100644 (file)
@@ -51,24 +51,24 @@ func TrashItem(trashRequest TrashRequest) {
        for _, volume := range volumes {
                mtime, err := volume.Mtime(trashRequest.Locator)
                if err != nil {
-                       log.Printf("%v Delete(%v): %v", volume, trashRequest.Locator, err)
+                       log.Printf("%v Trash(%v): %v", volume, trashRequest.Locator, err)
                        continue
                }
                if trashRequest.BlockMtime != mtime.UnixNano() {
-                       log.Printf("%v Delete(%v): stored mtime %v does not match trash list value %v", volume, trashRequest.Locator, mtime.UnixNano(), trashRequest.BlockMtime)
+                       log.Printf("%v Trash(%v): stored mtime %v does not match trash list value %v", volume, trashRequest.Locator, mtime.UnixNano(), trashRequest.BlockMtime)
                        continue
                }
 
                if !theConfig.EnableDelete {
-                       err = errors.New("did not delete block because EnableDelete is false")
+                       err = errors.New("skipping because EnableDelete is false")
                } else {
                        err = volume.Trash(trashRequest.Locator)
                }
 
                if err != nil {
-                       log.Printf("%v Delete(%v): %v", volume, trashRequest.Locator, err)
+                       log.Printf("%v Trash(%v): %v", volume, trashRequest.Locator, err)
                } else {
-                       log.Printf("%v Delete(%v) OK", volume, trashRequest.Locator)
+                       log.Printf("%v Trash(%v) OK", volume, trashRequest.Locator)
                }
        }
 }