Make sure failure inside of a non-vital rollback boundary is ignored.
Nir Bar committed
Aug 10, 2021 at 10:13 UTC
c6b138ed166e30c750e499919b858dc6913937b6
1 file changed
+4
-1
src/burn/engine/apply.cpp
+4
-1
@@ -725,6 +725,7 @@ extern "C" HRESULT ApplyExecute(
725
break;
726
}
727
728
+ // The action failed, roll back to previous rollback boundary.
729
if (pCheckpoint)
730
{
731
// If inside a MSI transaction, roll it back.
@@ -734,7 +735,6 @@ extern "C" HRESULT ApplyExecute(
735
IgnoreRollbackError(hrRollback, "Failed rolling back transaction");
736
}
737
737
- // The action failed, roll back to previous rollback boundary.
738
hrRollback = DoRollbackActions(pEngineState, &context, pCheckpoint->dwId, pRestart);
739
IgnoreRollbackError(hrRollback, "Failed rollback actions");
740
}
@@ -745,6 +745,9 @@ extern "C" HRESULT ApplyExecute(
745
break;
746
}
747
748
+ // Ignore failure inside of a non-vital rollback boundary.
749
+ hr = S_OK;
750
+
751
// Move forward to next rollback boundary.
752
fSeekNextRollbackBoundary = TRUE;
753
}