13383: Fix warning about expected 404 error.
authorTom Clegg <tclegg@veritasgenetics.com>
Tue, 24 Apr 2018 21:03:50 +0000 (17:03 -0400)
committerTom Clegg <tclegg@veritasgenetics.com>
Fri, 4 May 2018 20:52:02 +0000 (16:52 -0400)
The expected error (object not found immediately after deleting it)
was being logged as a warning, and the warning erroneously stated the
error was from "HEAD recent/X" rather than "HEAD X".

Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg@veritasgenetics.com>

services/keepstore/s3_volume.go

index 532a0823e2da2aefa5120a5fa2d5326e557bfa5e..b5a1c97b48c1b8269ae6384c1716d93cd129500c 100644 (file)
@@ -835,13 +835,17 @@ func (v *S3Volume) EmptyTrash() {
                atomic.AddInt64(&blocksDeleted, 1)
 
                _, err = v.bucket.Head(loc, nil)
-               if os.IsNotExist(err) {
-                       err = v.bucket.Del("recent/" + loc)
-                       if err != nil {
-                               log.Printf("warning: %s: EmptyTrash: deleting %q: %s", v, "recent/"+loc, err)
-                       }
-               } else if err != nil {
-                       log.Printf("warning: %s: EmptyTrash: HEAD %q: %s", v, "recent/"+loc, err)
+               if err == nil {
+                       log.Printf("warning: %s: EmptyTrash: HEAD %q succeeded immediately after deleting %q", v, loc, loc)
+                       return
+               }
+               if !os.IsNotExist(v.translateError(err)) {
+                       log.Printf("warning: %s: EmptyTrash: HEAD %q: %s", v, loc, err)
+                       return
+               }
+               err = v.bucket.Del("recent/" + loc)
+               if err != nil {
+                       log.Printf("warning: %s: EmptyTrash: deleting %q: %s", v, "recent/"+loc, err)
                }
        }