aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2025-02-05 10:33:59 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2025-02-05 10:33:59 +0200
commit5d44f8fcf72c7df437776ee86356037fc8ec8056 (patch)
tree94a15d4399e7070ec1c6674015c86a27a2fa4768
parent0ab20e311f8607bdceb7485da51bf97520eda4b8 (diff)
Instrument to better understand out of disk space failure modeHEADmaster
-rw-r--r--bbot/worker/worker.cxx21
1 files changed, 18 insertions, 3 deletions
diff --git a/bbot/worker/worker.cxx b/bbot/worker/worker.cxx
index 36c5e71..056f391 100644
--- a/bbot/worker/worker.cxx
+++ b/bbot/worker/worker.cxx
@@ -6420,7 +6420,7 @@ try
assert (rm.status == result_status::abort ||
rm.status == result_status::skip);
- if (!rwd.empty ())
+ if (!rwd.empty ()) // @@ When can it be empty?
{
change_wd (trace, nullptr /* log */, rwd);
@@ -6484,7 +6484,12 @@ try
assert (e.code ().category () == std::generic_category () &&
e.code ().value () == ENOSPC);
- error << "unable to serialize result manifest: " << e;
+ try
+ {
+ error << "unable to serialize result manifest: " << e;
+ }
+ catch (...) {}
+
return 4;
}
}
@@ -6496,7 +6501,12 @@ catch (const system_error& e)
if (e.code ().category () == std::generic_category () &&
e.code ().value () == ENOSPC)
{
- error << "no space left on device";
+ try
+ {
+ error << "no space left on device";
+ }
+ catch (...) {}
+
return 4;
}
else
@@ -6505,6 +6515,11 @@ catch (const system_error& e)
return 1; // Abnormal, no result manifest uploaded.
}
}
+catch (const std::exception& e)
+{
+ error << "unexpected error: " << e;
+ return 1; // Abnormal, no result manifest uploaded.
+}
// Parse the task_manifest::auxiliary_environment value into the list of
// environment variable assignments as expected by the process API. Throw