From 52989382da09933b885b2d81595bf9194e3f373c Mon Sep 17 00:00:00 2001 From: Michael Vrable Date: Mon, 8 Nov 2010 16:41:42 -0800 Subject: [PATCH] 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. --- bluesky/store-s3.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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); -- 2.20.1