diff options
author | Nir Bar <nir.bar@panel-sw.co.il> | 2021-08-10 10:13:28 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2021-08-12 14:50:55 -0500 |
commit | c6b138ed166e30c750e499919b858dc6913937b6 (patch) | |
tree | 2243e65425bf737fcc0e345abcbfb0fe921c802a | |
parent | 4d0798ec6311b48bfe6ee3cb4dd41379b4653528 (diff) | |
download | wix-c6b138ed166e30c750e499919b858dc6913937b6.tar.gz wix-c6b138ed166e30c750e499919b858dc6913937b6.tar.bz2 wix-c6b138ed166e30c750e499919b858dc6913937b6.zip |
Make sure failure inside of a non-vital rollback boundary is ignored.
-rw-r--r-- | src/burn/engine/apply.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
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( | |||
725 | break; | 725 | break; |
726 | } | 726 | } |
727 | 727 | ||
728 | // The action failed, roll back to previous rollback boundary. | ||
728 | if (pCheckpoint) | 729 | if (pCheckpoint) |
729 | { | 730 | { |
730 | // If inside a MSI transaction, roll it back. | 731 | // If inside a MSI transaction, roll it back. |
@@ -734,7 +735,6 @@ extern "C" HRESULT ApplyExecute( | |||
734 | IgnoreRollbackError(hrRollback, "Failed rolling back transaction"); | 735 | IgnoreRollbackError(hrRollback, "Failed rolling back transaction"); |
735 | } | 736 | } |
736 | 737 | ||
737 | // The action failed, roll back to previous rollback boundary. | ||
738 | hrRollback = DoRollbackActions(pEngineState, &context, pCheckpoint->dwId, pRestart); | 738 | hrRollback = DoRollbackActions(pEngineState, &context, pCheckpoint->dwId, pRestart); |
739 | IgnoreRollbackError(hrRollback, "Failed rollback actions"); | 739 | IgnoreRollbackError(hrRollback, "Failed rollback actions"); |
740 | } | 740 | } |
@@ -745,6 +745,9 @@ extern "C" HRESULT ApplyExecute( | |||
745 | break; | 745 | break; |
746 | } | 746 | } |
747 | 747 | ||
748 | // Ignore failure inside of a non-vital rollback boundary. | ||
749 | hr = S_OK; | ||
750 | |||
748 | // Move forward to next rollback boundary. | 751 | // Move forward to next rollback boundary. |
749 | fSeekNextRollbackBoundary = TRUE; | 752 | fSeekNextRollbackBoundary = TRUE; |
750 | } | 753 | } |