From e9decdccde7a1fc0b1a2350c7c4ba6a11ae5fda9 Mon Sep 17 00:00:00 2001 From: Tim Wojtulewicz Date: Fri, 26 Apr 2024 12:29:18 -0700 Subject: [PATCH] Merge remote-tracking branch 'pbcullen/topic/pbcullen/shadow-file-handling' * pbcullen/topic/pbcullen/shadow-file-handling: reformat changes Gracefully handle empty/missing shadow file (cherry picked from commit ad6d70d4e6f53e611cb56429a7e6e9b7a3a0759d) --- src/logging/writers/ascii/Ascii.cc | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/logging/writers/ascii/Ascii.cc b/src/logging/writers/ascii/Ascii.cc index fd73b4a9c2..f6f6c66e0e 100644 --- a/src/logging/writers/ascii/Ascii.cc +++ b/src/logging/writers/ascii/Ascii.cc @@ -122,10 +122,14 @@ TEST_CASE("writers.ascii prefix_basename_with") static std::optional parse_shadow_log(const std::string& fname) { auto sfname = prefix_basename_with(fname, shadow_file_prefix); + string default_ext = "." + Ascii::LogExt(); + if ( BifConst::LogAscii::gzip_level > 0 ) + default_ext += ".gz"; LeftoverLog rval = {}; rval.filename = fname; rval.shadow_filename = std::move(sfname); + rval.extension = default_ext; auto sf_stream = fopen(rval.shadow_filename.data(), "r"); @@ -181,14 +185,16 @@ static std::optional parse_shadow_log(const std::string& fname) if ( sf_lines.size() < 2 ) { - rval.error = util::fmt("Found leftover log, '%s', but the associated shadow " - " file, '%s', required to process it is invalid", - rval.filename.data(), rval.shadow_filename.data()); - return rval; + reporter->Warning("Found leftover log, '%s', but the associated shadow " + " file, '%s', required to process it is invalid: using default " + " for extension (%s) and post_proc_func", + rval.filename.data(), rval.shadow_filename.data(), default_ext.data()); + } + else + { + rval.extension = sf_lines[0]; + rval.post_proc_func = sf_lines[1]; } - - rval.extension = sf_lines[0]; - rval.post_proc_func = sf_lines[1]; struct stat st;