diff options
author | Kenneth Skovhede <kenneth@hexad.dk> | 2015-01-19 13:23:21 +0300 |
---|---|---|
committer | Kenneth Skovhede <kenneth@hexad.dk> | 2015-01-19 13:23:21 +0300 |
commit | 9ebd43bc7536491dd174f9a45bbb2192e89660ae (patch) | |
tree | 4f7c3b94e1b0bc889bd215730731423b3b0f903f | |
parent | 714e69675fa6c5f289aa2cb0015bf5bd8210a442 (diff) |
Now guarding put calls with a transaction flush before and after.
This solves #1243.
-rw-r--r-- | Duplicati/Library/Main/Operation/BackupHandler.cs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/Duplicati/Library/Main/Operation/BackupHandler.cs b/Duplicati/Library/Main/Operation/BackupHandler.cs index 6e69ad2e7..9d4dd833a 100644 --- a/Duplicati/Library/Main/Operation/BackupHandler.cs +++ b/Duplicati/Library/Main/Operation/BackupHandler.cs @@ -594,7 +594,11 @@ namespace Duplicati.Library.Main.Operation m_database.UpdateRemoteVolume(m_blockvolume.RemoteFilename, RemoteVolumeState.Uploading, -1, null, m_transaction);
m_blockvolume.Close();
UpdateIndexVolume();
-
+
+ using(new Logging.Timer("CommitUpdateRemoteVolume"))
+ m_transaction.Commit();
+ m_transaction = m_database.BeginTransaction();
+
m_backend.Put(m_blockvolume, m_indexvolume);
using(new Logging.Timer("CommitUpdateRemoteVolume"))
@@ -641,6 +645,11 @@ namespace Duplicati.Library.Main.Operation else
{
m_database.UpdateRemoteVolume(m_filesetvolume.RemoteFilename, RemoteVolumeState.Uploading, -1, null, m_transaction);
+
+ using(new Logging.Timer("CommitUpdateRemoteVolume"))
+ m_transaction.Commit();
+ m_transaction = m_database.BeginTransaction();
+
m_backend.Put(m_filesetvolume);
using(new Logging.Timer("CommitUpdateRemoteVolume"))
@@ -1075,6 +1084,10 @@ namespace Duplicati.Library.Main.Operation m_backend.FlushDbMessages(m_database, m_transaction);
m_backendLogFlushTimer = DateTime.Now.Add(FLUSH_TIMESPAN);
+ using(new Logging.Timer("CommitAddBlockToOutputFlush"))
+ m_transaction.Commit();
+ m_transaction = m_database.BeginTransaction();
+
m_backend.Put(m_blockvolume, m_indexvolume);
m_blockvolume = null;
m_indexvolume = null;
|