Quoting Sameeh Jubran (2017-03-21 09:14:35)
> Errors that are related to ur inner implementation for the thaw command
> shouldn't be displayed to the user.
>
> Signed-off-by: Sameeh Jubran <[email protected]>
> ---
> qga/vss-win32/requester.cpp | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp
> index 0cd2f0e..272e71b 100644
> --- a/qga/vss-win32/requester.cpp
> +++ b/qga/vss-win32/requester.cpp
> @@ -463,7 +463,7 @@ void requester_thaw(int *num_vols, ErrorSet *errset)
> hr = WaitForAsync(pAsync);
> }
> if (FAILED(hr)) {
> - err_set(errset, hr, "failed to complete backup");
We cannot do this. If the freeze operation didn't successfully maintain
the frozen state for entire duration we *must* report an error to the
user, otherwise users have no way to know that their snapshot might be
completely corrupted. Well, I suppose they can look at
guest-fsfreeze-thaw's return value and check that it matches the number
of volumes that were originally frozen, but that aspect is intended as a
sanity check to identify situations outside of qemu-ga's control, like
another user/application unfreezing the filesystems before qemu-ga. This
situation *is* within qemu-ga's control, and should be reported as an
error. Same for the other failures below.
> + fprintf(stderr, "failed to complete backup");
> }
> break;
>
> @@ -480,18 +480,18 @@ void requester_thaw(int *num_vols, ErrorSet *errset)
>
> case VSS_E_UNEXPECTED_PROVIDER_ERROR:
> if (WaitForSingleObject(vss_ctx.hEventTimeout, 0) != WAIT_OBJECT_0) {
> - err_set(errset, hr, "unexpected error in VSS provider");
> + fprintf(stderr, "unexpected error in VSS provider");
> break;
> }
> /* fall through if hEventTimeout is signaled */
>
> case (HRESULT)VSS_E_HOLD_WRITES_TIMEOUT:
> - err_set(errset, hr, "couldn't hold writes: "
> + fprintf(stderr, "couldn't hold writes: "
> "fsfreeze is limited up to 10 seconds");
> break;
>
> default:
> - err_set(errset, hr, "failed to do snapshot set");
> + fprintf(stderr, "failed to do snapshot set");
> }
>
> if (err_is_set(errset)) {
> --
> 2.9.3
>