Enabling retry for HTTP 500 internal server error
authorRicardo Noriega <rnoriega@redhat.com>
Fri, 28 Oct 2022 11:59:08 +0000 (13:59 +0200)
committerRicardo Noriega <rnoriega@redhat.com>
Tue, 8 Nov 2022 17:14:31 +0000 (18:14 +0100)
Signed-off-by: Ricardo Noriega <rnoriega@redhat.com>
Use G_IO_ERROR_BUSY to represent 500 error

Signed-off-by: Ricardo Noriega <rnoriega@redhat.com>
Make G_IO_ERROR_BUSY independent from glib version

Signed-off-by: Ricardo Noriega <rnoriega@redhat.com>
src/libostree/ostree-fetcher-util.c

index 450a3abe34e43f1b7d7f37f41de36c6e8e6fd479..1b317630faa66d2f39753d540ab02829410687cf 100644 (file)
@@ -239,6 +239,7 @@ _ostree_fetcher_should_retry_request (const GError *error,
       g_error_matches (error, G_IO_ERROR, G_IO_ERROR_HOST_NOT_FOUND) ||
       g_error_matches (error, G_IO_ERROR, G_IO_ERROR_HOST_UNREACHABLE) ||
       g_error_matches (error, G_IO_ERROR, G_IO_ERROR_PARTIAL_INPUT) ||
+      g_error_matches (error, G_IO_ERROR, G_IO_ERROR_BUSY) ||
 #if !GLIB_CHECK_VERSION(2, 44, 0)
       g_error_matches (error, G_IO_ERROR, G_IO_ERROR_BROKEN_PIPE) ||
 #else
@@ -269,6 +270,8 @@ _ostree_fetcher_http_status_code_to_io_error (guint status_code)
       return G_IO_ERROR_NOT_FOUND;
     case 408:  /* SOUP_STATUS_REQUEST_TIMEOUT */
       return G_IO_ERROR_TIMED_OUT;
+    case 500:  /* SOUP_STATUS_INTERNAL_SERVER_ERROR */
+      return G_IO_ERROR_BUSY;
     default:
       return G_IO_ERROR_FAILED;
     }