Added retry on HTTP 503 response

Based on https://cloud.google.com/apis/design/errors#retrying_errors,
HTTP 503 is a temporary error that should be retried with exponential
backoff. The script currently only looks for 500 and 502 errors.

Bug: 96020
Change-Id: I07b30062779ffcd66ed365b02f70b2f85a8d2154
Reviewed-on: https://fuchsia-review.googlesource.com/c/tools/+/660747
Reviewed-by: Oliver Newman <olivernewman@google.com>
Commit-Queue: David Song <wintermelons@google.com>
diff --git a/debugsyms/cmd/bucket.go b/debugsyms/cmd/bucket.go
index 658473d..27e1559 100644
--- a/debugsyms/cmd/bucket.go
+++ b/debugsyms/cmd/bucket.go
@@ -54,7 +54,7 @@
 		if _, err := io.Copy(wc, r); err != nil {
 			wc.Close()
 			errorMsg := fmt.Sprintf("failed to write object %q: %v", object, err)
-			for _, errCode := range []string{"500", "502"} {
+			for _, errCode := range []string{"500", "502", "503"} {
 				if strings.Contains(err.Error(), errCode) {
 					return errors.New(errorMsg, transient.Tag)
 				}