From: Michael Vrable Date: Tue, 9 Nov 2010 00:41:42 +0000 (-0800) Subject: Return failure code when an S3 put operation fails. X-Git-Url: https://git.vrable.net/?a=commitdiff_plain;h=52989382da09933b885b2d81595bf9194e3f373c;p=bluesky.git Return failure code when an S3 put operation fails. Previously, we were indicating success even when that wasn't true, leading to errors later when we went to read data we hadn't written. Now, the caller can retry the put operation if needed. --- diff --git a/bluesky/store-s3.c b/bluesky/store-s3.c index 03f497b..00bace4 100644 --- a/bluesky/store-s3.c +++ b/bluesky/store-s3.c @@ -115,6 +115,7 @@ static void s3store_task(gpointer a, gpointer s) } else if (async->op == STORE_OP_PUT) { struct put_info info; + info.success = 0; info.val = async->data; info.offset = 0; @@ -127,7 +128,11 @@ static void s3store_task(gpointer a, gpointer s) S3_put_object(&store->bucket, async->key, async->data->len, NULL, NULL, &handler, &info); - async->result = 0; + if (info.success) { + async->result = 0; + } else { + g_warning("Error completing S3 put operation; client must retry!"); + } } bluesky_store_async_mark_complete(async);