Now guarding put calls with a transaction flush before and after.

This solves #1243.
This commit is contained in:
Kenneth Skovhede
2015-01-19 11:23:21 +01:00
parent 714e69675f
commit 9ebd43bc75
@@ -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;