From: norbert.bizet Date: Thu, 21 Dec 2023 09:05:27 +0000 (-0500) Subject: Revert "cloud storage: Fix #10291 Assume that driver ls can return an error when... X-Git-Tag: Release-15.0.3~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5e91b22e5782ade88c034a01ccad4fdb1ad9b57;p=thirdparty%2Fbacula.git Revert "cloud storage: Fix #10291 Assume that driver ls can return an error when scanning an unexistant cloud volume and loosen the conditions that handle this case" This reverts commit 28ba97c0958b0a609b1ff11d560bc804b8fc1c65. --- diff --git a/bacula/scripts/aws_cloud_driver.in b/bacula/scripts/aws_cloud_driver.in index 124bdb549..82789391b 100755 --- a/bacula/scripts/aws_cloud_driver.in +++ b/bacula/scripts/aws_cloud_driver.in @@ -92,6 +92,9 @@ def ls(): # forward out stds logging.info("ls outputing {0}".format(output)) sys.stdout.write(output) + if proc.returncode == 1: + # possible to ls unexisting path. In this case, return code will be 1. + return 0 return proc.returncode except Exception as e: exc = traceback.format_exception_only(type(e), e)[0] diff --git a/bacula/src/stored/cloud_dev.c b/bacula/src/stored/cloud_dev.c index 16e58419f..2bb1bb018 100644 --- a/bacula/src/stored/cloud_dev.c +++ b/bacula/src/stored/cloud_dev.c @@ -1622,7 +1622,7 @@ bool cloud_dev::probe_cloud_proxy(DCR *dcr,const char *VolName, bool force) cancel_cb.arg = dcr; if (!driver->get_cloud_volume_parts_list(VolName, &cloud_parts, &cancel_cb, errmsg)) { Dmsg2(dbglvl, "Cannot get cloud sizes for Volume=%s Err=%s\n", VolName, errmsg); - /* Non critical error: it's possible that no part exist on cloud of even that the volume doesn't exist or has been sweeped */ + return false; } /* then, add the content of cloud_parts in the proxy table */ @@ -2783,7 +2783,9 @@ bool cloud_dev::upload_cache(DCR *dcr, const char *VolumeName, uint32_t truncate cancel_cb.fct = DCR_cancel_cb; cancel_cb.arg = dcr; if (!driver->get_cloud_volume_parts_list(VolumeName, &cloud_parts, &cancel_cb, err)) { - Qmsg2(dcr->jcr, M_WARNING, 0, "Non-critical error while listing volume parts for volume %s. %s\n", VolumeName, err); + Qmsg2(dcr->jcr, M_ERROR, 0, "Error while uploading parts for volume %s. %s\n", VolumeName, err); + ret = false; + goto bail_out; } if (!get_cache_volume_parts_list(dcr, VolumeName, &cache_parts)) { @@ -2812,17 +2814,13 @@ bool cloud_dev::upload_cache(DCR *dcr, const char *VolumeName, uint32_t truncate Mmsg(fname, "%s/part.%d", vol_dir, i); Dmsg1(dbglvl, "Do upload of %s\n", fname); bool do_truncate = (truncate==TRUNC_AFTER_UPLOAD) || (truncate==TRUNC_CONF_DEFAULT && (trunc_opt == TRUNC_AFTER_UPLOAD)); - if (cache_parts[i]) { - if (!upload_part_to_cloud(dcr, VolumeName, i, do_truncate)) { - if (errmsg[0]) { - Qmsg(dcr->jcr, M_ERROR, 0, "%s", errmsg); - } - ret = false; - } else { - Qmsg(dcr->jcr, M_INFO, 0, "Uploaded cache %s\n", fname); + if (!upload_part_to_cloud(dcr, VolumeName, i, do_truncate)) { + if (errmsg[0]) { + Qmsg(dcr->jcr, M_ERROR, 0, "%s", errmsg); } + ret = false; } else { - Qmsg(dcr->jcr, M_WARNING, 0, "Part %s not found in cache. Upload skipped.\n", fname); + Qmsg(dcr->jcr, M_INFO, 0, "Uploaded cache %s\n", fname); } } bail_out: diff --git a/bacula/src/stored/dircmd.c b/bacula/src/stored/dircmd.c index 062fc8b9d..8fb8710e7 100644 --- a/bacula/src/stored/dircmd.c +++ b/bacula/src/stored/dircmd.c @@ -840,7 +840,7 @@ static bool cloud_list_cmd(JCR *jcr) } else { ilist parts(100, not_owned_by_alist); if (!dcr->dev->get_cloud_volume_parts_list(dcr, volname, &parts, errmsg)) { - dir->fsend(_("3900 Error cannot get cloud parts list. ERR=%s\n"), errmsg); + dir->fsend(_("3900 Error cannot get cloud Volume list. ERR=%s\n"), errmsg); free_dcr(dcr); goto bail_out; }