Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/duplicati/duplicati.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Skovhede <kenneth@hexad.dk>2015-01-19 13:23:21 +0300
committerKenneth Skovhede <kenneth@hexad.dk>2015-01-19 13:23:21 +0300
commit9ebd43bc7536491dd174f9a45bbb2192e89660ae (patch)
tree4f7c3b94e1b0bc889bd215730731423b3b0f903f
parent714e69675fa6c5f289aa2cb0015bf5bd8210a442 (diff)
Now guarding put calls with a transaction flush before and after.
This solves #1243.
-rw-r--r--Duplicati/Library/Main/Operation/BackupHandler.cs15
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;