From c6b138ed166e30c750e499919b858dc6913937b6 Mon Sep 17 00:00:00 2001 From: Nir Bar Date: Tue, 10 Aug 2021 10:13:28 -0500 Subject: Make sure failure inside of a non-vital rollback boundary is ignored. --- src/burn/engine/apply.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/burn/engine/apply.cpp b/src/burn/engine/apply.cpp index 8711344d..283c0ada 100644 --- a/src/burn/engine/apply.cpp +++ b/src/burn/engine/apply.cpp @@ -725,6 +725,7 @@ extern "C" HRESULT ApplyExecute( break; } + // The action failed, roll back to previous rollback boundary. if (pCheckpoint) { // If inside a MSI transaction, roll it back. @@ -734,7 +735,6 @@ extern "C" HRESULT ApplyExecute( IgnoreRollbackError(hrRollback, "Failed rolling back transaction"); } - // The action failed, roll back to previous rollback boundary. hrRollback = DoRollbackActions(pEngineState, &context, pCheckpoint->dwId, pRestart); IgnoreRollbackError(hrRollback, "Failed rollback actions"); } @@ -745,6 +745,9 @@ extern "C" HRESULT ApplyExecute( break; } + // Ignore failure inside of a non-vital rollback boundary. + hr = S_OK; + // Move forward to next rollback boundary. fSeekNextRollbackBoundary = TRUE; } -- cgit v1.2.3-55-g6feb