aboutsummaryrefslogtreecommitdiff
path: root/bbot/worker/worker.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2020-10-05 15:27:12 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2020-10-27 15:49:45 +0200
commit49653c56bd5b9c7b8ad459b278634ddbb9115a74 (patch)
tree37f50ff9cb11299f97f9295660761455bb226e93 /bbot/worker/worker.cxx
parent5f02a68719ed772d27371bcb793f94e241b878f6 (diff)
Handle case where io_error not derived from system_error
Diffstat (limited to 'bbot/worker/worker.cxx')
-rw-r--r--bbot/worker/worker.cxx19
1 files changed, 12 insertions, 7 deletions
diff --git a/bbot/worker/worker.cxx b/bbot/worker/worker.cxx
index 6edadcc..26fa26b 100644
--- a/bbot/worker/worker.cxx
+++ b/bbot/worker/worker.cxx
@@ -1396,24 +1396,29 @@ build (size_t argc, const char* argv[])
c.out.close ();
if (!c.wait ())
throw_generic_error (EIO);
+
+ // We use exit code 2 to signal abnormal termination but where we managed
+ // to upload the result manifest. See startup() for details.
+ //
+ return rm.status != result_status::abnormal ? 0 : 2;
}
catch (const manifest_serialization& e)
{
fail << "invalid result manifest: " << e.description;
}
+ catch (const io_error& e) // In case not derived from system_error.
+ {
+ error << "unable to upload result manifest to " << url << ": " << e;
+ }
catch (const system_error& e)
{
- // We use exit code 3 to signal an unsuccessful attempt to upload the
- // result manifest. See startup() for details.
- //
error << "unable to upload result manifest to " << url << ": " << e;
- return 3;
}
- // We use exit code 2 to signal abnormal termination but where we managed
- // to upload the result manifest. See startup() for details.
+ // We use exit code 3 to signal an unsuccessful attempt to upload the result
+ // manifest. See startup() for details.
//
- return rm.status != result_status::abnormal ? 0 : 2;
+ return 3;
}
static int