Merge pull request #4064 from nextcloud/bugfix/syncStuckOnError

Bugfix/sync stuck on error
This commit is contained in:
Matthieu Gallien 2021-12-10 13:37:20 +01:00 committed by GitHub
commit e1d5a2a4c1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 7 deletions

View File

@ -276,10 +276,12 @@ void BulkPropagatorJob::slotStartUpload(SyncFileItemPtr item,
item->_modtime = FileSystem::getModTime(originalFilePath);
if (item->_modtime <= 0) {
return slotOnErrorStartFolderUnlock(item, SyncFileItem::SoftError, tr("Local file has invalid modified time. Do not upload to the server."));
_pendingChecksumFiles.remove(item->_file);
return slotOnErrorStartFolderUnlock(item, SyncFileItem::NormalError, tr("File %1 has invalid modified time. Do not upload to the server.").arg(QDir::toNativeSeparators(item->_file)));
}
if (prevModtime != item->_modtime) {
propagator()->_anotherSyncNeeded = true;
_pendingChecksumFiles.remove(item->_file);
qDebug() << "trigger another sync after checking modified time of item" << item->_file << "prevModtime" << prevModtime << "Curr" << item->_modtime;
return slotOnErrorStartFolderUnlock(item, SyncFileItem::SoftError, tr("Local file changed during syncing. It will be resumed."));
}
@ -292,6 +294,7 @@ void BulkPropagatorJob::slotStartUpload(SyncFileItemPtr item,
// or not yet fully copied to the destination.
if (fileIsStillChanging(*item)) {
propagator()->_anotherSyncNeeded = true;
_pendingChecksumFiles.remove(item->_file);
return slotOnErrorStartFolderUnlock(item, SyncFileItem::SoftError, tr("Local file changed during sync."));
}

View File

@ -316,9 +316,9 @@ void PropagateUploadFileCommon::slotComputeContentChecksum()
// and not the _fileToUpload because we are checking the original file, not there
// probably temporary one.
_item->_modtime = FileSystem::getModTime(filePath);
Q_ASSERT(_item->_modtime > 0);
if (_item->_modtime <= 0) {
qCWarning(lcPropagateUpload()) << "invalid modified time" << _item->_file << _item->_modtime;
slotOnErrorStartFolderUnlock(SyncFileItem::NormalError, tr("File %1 has invalid modified time. Do not upload to the server.").arg(QDir::toNativeSeparators(_item->_file)));
return;
}
const QByteArray checksumType = propagator()->account()->capabilities().preferredUploadChecksumType();
@ -392,8 +392,8 @@ void PropagateUploadFileCommon::slotStartUpload(const QByteArray &transmissionCh
return slotOnErrorStartFolderUnlock(SyncFileItem::SoftError, tr("File Removed (start upload) %1").arg(fullFilePath));
}
if (_item->_modtime <= 0) {
return slotOnErrorStartFolderUnlock(
SyncFileItem::SoftError, tr("Local file has invalid modified time. Do not upload to the server."));
slotOnErrorStartFolderUnlock(SyncFileItem::NormalError, tr("File %1 has invalid modified time. Do not upload to the server.").arg(QDir::toNativeSeparators(_item->_file)));
return;
}
Q_ASSERT(_item->_modtime > 0);
if (_item->_modtime <= 0) {
@ -405,8 +405,8 @@ void PropagateUploadFileCommon::slotStartUpload(const QByteArray &transmissionCh
_item->_modtime = FileSystem::getModTime(originalFilePath);
if (_item->_modtime <= 0) {
return slotOnErrorStartFolderUnlock(
SyncFileItem::SoftError, tr("Local file has invalid modified time. Do not upload to the server."));
slotOnErrorStartFolderUnlock(SyncFileItem::NormalError, tr("File %1 has invalid modified time. Do not upload to the server.").arg(QDir::toNativeSeparators(_item->_file)));
return;
}
Q_ASSERT(_item->_modtime > 0);
if (_item->_modtime <= 0) {