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

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-05-11Upgrade some qCDebug to qCInfo or qCWarningJocelyn Turcotte
Use qCInfo for anything that has general value for support and development. Use qCWarning for any recoverable error and qCCritical for anything that could result in data loss or would identify a serious issue with the code. Issue #5647
2017-05-11Use Qt logging categories for loggingJocelyn Turcotte
This gives more insight about the logs and allow setting fine-tuned logging rules. The categories are set to only output Info by default so this allows us to provide more concise logging while keeping the ability to extract more information for a specific category when developping or debugging customer issues. Issue #5647
2017-05-08Switch JsonApiJob to Qt5's QJson #5710Christian Kamm
2017-04-20Removed Magic Numbers in propagator #5685 (#5705)Kaustubh Welankar
2017-03-28dynamic chunking: cleanup, fixes, improvementsChristian Kamm
* make target duration a client option instead of a capability * simplify algorithm for determining chunk size significantly * preserve chunk size for the whole propagation, not just per upload * move options to SyncOptions to avoid depending on ConfigFile in the propagator * move chunk-size adjustment to after a chunk finishes, not when a new chunk starts
2017-03-27dynamic chunking prototypePiotr M
2017-03-16Merge remote-tracking branch 'origin/2.3'Olivier Goffart
Conflicts: src/libsync/owncloudpropagator.cpp
2017-03-14Windows/NTFS: Do not attempt to upload inaccessible files #5544Christian Kamm
It is possible to create files with filenames that differ only by case in NTFS, but most operations such as stat and open only target one of these by default. When that happens, we want to avoid uploading incorrect data and give up on the file. Typically this situation should never occurr during normal use of Windows. It can happen, however, when a NTFS partition is mounted in another OS.
2017-03-10Blacklist: Escalate repeated SoftError to NormalError #5500Christian Kamm
2017-03-09Propagator: Attempt to fix a crash in OwncloudPropagator::scheduleNextJobOlivier Goffart
The crash reporter shows many crashes in OwncloudPropagator::scheduleNextJob. We don't really know what could be the cause, but it's probably because the _activeJobList contains dangling pointer. So this patch makes sure to remove all the jobs from this list as they get destroyed.
2017-03-09Merge remote-tracking branch 'origin/2.3'Olivier Goffart
Conflicts: src/libsync/owncloudpropagator.cpp
2017-03-06Propagator: Fix finished signal of directory being emited twice and causing ↵Olivier Goffart
crash When there is a FatalError, we ended up emiting the finished signal for the directory job several times, which would lead to crashes Issue #5578
2017-02-27Potential fix for crash in PropagateDirectory::abort (#5564)Jocelyn Turcotte
2017-02-23Don't abort propagation job abortions synchronously from finishedJocelyn Turcotte
This leads to crashes since we changed the connection to the parent jobs not to be queued anymore. We don't really need to bubble up the finished state through parents in that case, and it would also mean that we'd recurse all the way through leaves as we go up to each parent. So just call abort directly on the OwncloudPropagator and make sure the abortion call is posted to the event loop.
2017-02-23Reduce the connection data used by PropagateDirectory objectsJocelyn Turcotte
Avoid using connections to report up the job tree for signals that we can directly communicate to the OwncloudPropagator. This slightly reduces the memory usage and avoid passing those calls through the whole parent chain.
2017-02-23Create PropagateItemJobs only before starting themJocelyn Turcotte
2017-02-23Split running jobs into a separate vectorJocelyn Turcotte
2017-02-23Split the subjob logic out of PropagateDirectoryJocelyn Turcotte
2017-02-23Replace WaitForFinishedInParentDirectory with WaitForFinished for directory ↵Jocelyn Turcotte
moves In preparation for the PropagateDirectory refactoring, simplify things by removing WaitForFinishedInParentDirectory, which is currently implemented as a one-level check. This value is important for directory items, but is however never used since a directory CSYNC_INSTRUCTION_RENAME item will always be in PropagateDirectory::_firstJob, which will have to pass through its own PropagateDirectory job's parallelism() before reaching the parent's _subJobs optimization. Since PropagateDirectory::parallelism can only return WaitForFinished or FullParallelism, that value is lost. So this commit doesn't change the behavior for directories, and allow file renames to be scheduled in parallel across directories (which isn't a problem).
2017-02-17Propagator: Fix t8.plOlivier Goffart
The test sets OWNCLOUD_MAX_PARALLEL to 1 to disable parallelism. But since the max amount of parallelism is twice as much, that does not work. So change the way we compute the hardMaximumActiveJob: Use the value of OWNCLOUD_MAX_PARALLEL to maximize this amount and base the maximum amount of transfer jobs on it instead of the other way. A result of this change is that, in case of bandwidth limit, we keep the default of 6 non-transfer jobs in parallel. I believe that's fine since the short jobs do not really use bandwidth, so we can still keep the same amount of small jobs.
2017-02-08Fix TestSyncEngine::abortAfterFailedMkdirJocelyn Turcotte
It could be possible that _firstJob is marked as finished if aborted before its parent PropagateDirectory was marked as finished, allowing a posted scheduleNextJob call to schedule the child job in-between.
2017-02-08Double check usage of asserts #5429Christian Kamm
A few are supposed to be fatal.
2017-01-26Remove PropagateDirectory::_runningNowJocelyn Turcotte
This variable isn't used anymore except in a stray Q_ASSERT.
2017-01-26Delete finished propagation jobs in PropagateDirectory #5269 (#5400)Piotr Mrówczyński
2017-01-26Pass the SyncFileItem as SyncFileItemPtr in itemCompletedJocelyn Turcotte
This will allow us to keep a reference on the items in connected slots.
2017-01-26Don't pass the PropagatorJob in itemCompletedJocelyn Turcotte
This was to catch duplicate emissions for PropagateDirectory but we don't emit this signal anymore from there. This fixes a warning about PropagatorJob not being a registered metatype. This reverts commit fe42c1a818c3b1ccadb2e9557971b62a350573b4.
2017-01-17PropagatorJob: Remove unneccessary pointer #5453Christian Kamm
2017-01-17PropagatorJob: Access propagator through function #5453Christian Kamm
2017-01-13Reset stuck chunked uploads eventually #5344 (#5443)ckamm
Previously this wasn't happening for errors that were not NormalErrors because they don't end up in the blacklist. This revises the resetting logic to be independent of the error blacklist and make use of UploadInfo::errorCount instead. 412 errors should reset chunked uploads because they might be indicative of a checksum error. Additionally, server bugs might require that additional errors cause an upload reset. To allow that, a new capability is added that can be used to advise the client about this.
2016-12-05libsync: Clear the upload info after several retries (#5345)Olivier Goffart
Issue #5344
2016-11-29libsync: use the new webdav url if the server reports itOlivier Goffart
The rules to select the webdav url are now: - If the server reports that the new chunking algorithm is working, always use remote.php/dav/files/<username> This capability can be overriden with an environment variable - Otherwise, use the dav path provided by the theme, which defaults to remote.php/webdav This means that with the newer server, the branding can no longer override the webdav URL. If there is still an usecase for the branding to do so, we need to find another way to override it. But it is now more complicated to configure as might need include the username and need different endpoint depending on the operations (chunks or not) Issue #4007
2016-11-22Propagator: don't use dynamic_cast for QObjectOlivier Goffart
qobject_cast is better. (no need to use RTTI when we have QMetaObject
2016-11-21libsync: Don't store the remote URI in the csync or in the SyncEngineOlivier Goffart
We are going to change the webdav path depending on the capabilities. But the SyncEngine and csync might have been created before the capabilities are retrieved. The main raison why we gave the path to the sync engine was to pass it to csync. But the thing is that csync don't need anymore this url as everything is done by the discovery classes in libsync that use the network jobs that use the account for the urls. So csync do not need the remote URI. shortenFilename in folderstatusmodel.cpp was useless because the string is the _file of a SyncFileItem which is the relative file name, that name never starts with owncloud://. All the csync test creates the folder because csync use to check if the folder exists. But we don't need to do that anymore
2016-11-15Merge pull request #5102 from owncloud/chunking-ngMarkus Goetz
Chunking ng
2016-10-31reduce number of loopsPiotr M
2016-10-21Chunking-NG: Enable if the server supports itOlivier Goffart
2016-10-20Merge remote-tracking branch 'origin/master' into chunking-ngOlivier Goffart
2016-10-14Propagator: Also upload more in parallel (#5230)Markus Goetz
Fix for https://github.com/owncloud/client/issues/4986#issuecomment-227071801 This is before we have bundling at some point.
2016-09-22SyncEngine: Fix renaming of folder when file are changed (#5195)Olivier Goffart
Two bugs: - The change filed are not considered as move, they are re-downloaded but the old file was not removed from the database. The change in owncloudpropagator.cpp takes care of removing the old entries. - Next sync would then remove the file in the server in the old folder This was not a problem until we start reusing the sync engine, and that the _renamedFolders map is not cleared. We were before deleting a non-existing file. But now we delete the actual file. Also improve the tests to be able to do move on the server. This include support for file id. Issue #5192
2016-09-21Propagator: properly send the success flag (#5189)Olivier Goffart
In case of the root directory, it may happen that the _item is empty and the _item->_status is NoStatus. But we still need to report the proper success or error of the whole propagation. We should really use _hasError for that. However, _hasError is also defined to NoStatus if there was no error, so in that case we need to set Success. This fixes the problem in which the data-fingerprint is not saved on the database because the SyncEngine think that the sync failed. (Issue #5185)
2016-08-31ChunkingNg: enable depending on an environment variableOlivier Goffart
2016-08-31Upload: refactor the upload in two classes so the new chuning can be implementedOlivier Goffart
2016-08-31Propagator, remove the QNAM in the name as the alternative has been removed ↵Olivier Goffart
a long time ago
2016-08-17[overlays] Fix folders appearing as OK even though children are still ↵Jocelyn Turcotte
syncing #4797 This would happen if the directory would first need to be created through an mkdir propagation job. This job's itemCompleted signal would trigger the directory to show as SYNC even though its children are still propagating. Fix the issue by tracking the sync count for each file, affecting its parents. This allows us to get rid of the O(n) vector lookup for each status query, and properly track the hierachical sync status of a directory. This also removes the itemCompleted signal emission from the PropagateDirectory job. Since we only needed for overlay icons, and since this job doesn't do any direct propagation, we can remove it to ensure that we won't call itemCompleted twice for the item attached to Propagate*Mkdir jobs (since the PropagateDirectory is backed by the same SyncFileItem, instruction and status).
2016-08-17csync: Use an explicit instruction for should_update_metadataJocelyn Turcotte
The current way of tracking the need to update the metadata without propagation using a separate flag makes it difficult to track priorities between the local and remote tree. The logic is also difficult to logically cover since the possibilities matrix isn't 100% covered, leaving the flag only used in a few situations (mostly involving folders, but not only). The reason we need to change this is to be able to track the sync state of files for overlay icons. The instruction alone can't be used since CSYNC_INSTRUCTION_SYNC is used for folders even though they won't be propagated. Removing this logic is however not possible without using something else than CSYNC_INSTRUCTION_NONE since too many codepath interpret (rightfully) this as meaning "nothing to do". This patch adds a new CSYNC_INSTRUCTION_UPDATE_METADATA instruction to let the update and reconcile steps tell the SyncEngine to update the metadata of a file without any propagation. Other flags are left to be interpretted by the implementation as implicitly needing metadata update or not, as this was already the case for most file propagation jobs. For example, CSYNC_INSTRUCTION_NEW for directories now also implicitly update the metadata. Since it's not impossible for folders to emit CSYNC_INSTRUCTION_SYNC or CSYNC_INSTRUCTION_CONFLICT, the corresponding code paths in the sync engine have been removed. Since the reconcile step can now know if the local tree needs metadata update while the remote side might want propagation, the localMetadataUpdate logic in SyncEngine::treewalkFile now simply use a CSYNC_INSTRUCTION_UPDATE_METADATA for the local side, which is now implemented as a different database query.
2016-08-02SyncEngine: Reads the data-fingerprint property (#5056)Olivier Goffart
When it changes, assume a backup was recovered, and keep conflict files. Issues: #2325 and https://github.com/owncloud/enterprise/issues/966
2016-07-14CleanupPollsJob: Fix possible leakOlivier Goffart
Missing deleteLater when the CleanupPollsJob aborts. This is only a problem if the SyncEngine is kept alive a long time. Which is usually not the case in the configuration where poll jobs are used.
2016-06-09Move touched-files tracking to SyncEngine #4927 (#4946)ckamm
2016-04-15Add server capabilities for checksums #4638Christian Kamm
* Add checksums/supportedTypes and checksums/preferredUploadType capabilities. The default is that no checksum types are supported. * Remove the transmissionChecksum config option. Servers must now use the capabilities to indicate that they are fine with the client sending checksums. Note: This intentionally breaks brandings that overrode Theme::transmissionChecksum. The override must be removed and the server's capabilities must be adjusted to include the new values.
2016-04-11Merge pull request #4656 from owncloud/close_journal_fixKlaas Freitag
Close journal fix - do not keep the journal open or reopen on error.