Klaas Freitag
9f6d7eb587
tests: use the ocs_url in the same semantics as the 1.6 branch.
2014-10-22 16:06:39 +02:00
Markus Goetz
47ad4e3fe8
CSync: Close/Reopen DB between update and reconcile
...
update and reconcile happen in different threads. This code is safer.
(Even though depending on sqlite3 version it should work anyway)
2014-10-22 15:42:13 +02:00
Olivier Goffart
3be5600caf
t6.pl: fix missing space in curl command
2014-10-22 15:16:22 +02:00
Olivier Goffart
dd45b448d9
t6.pl: pass the --insecure flag to curl so it works on the test machine
2014-10-22 13:57:22 +02:00
Christian Kamm
d77fcea365
Csync tests: Don't use sqlite3_close_v2.
2014-10-22 12:44:33 +02:00
Christian Kamm
ba86988101
Csync tests: Fix broken tests.
...
It is no longer ok to call csync_statedb_load() on a non-existant
database since it opens readonly only.
2014-10-22 12:22:13 +02:00
Christian Kamm
de48e65091
Csync tests: Fix compile.
2014-10-22 11:45:48 +02:00
Markus Goetz
61e72ef50b
CSync: statedb sanity check changes
2014-10-21 18:09:23 +02:00
Markus Goetz
24d4840c93
SyncJournalDB: Set WAL files to hidden
2014-10-21 15:58:56 +02:00
Olivier Goffart
5a109d9293
Fix t3.pl
...
The fix in commit 86d8079
made the detection of changes inside
a directory more robust.
As a result, changes are detected inside a directory, even if the
files that are changed were moved away on the other remote, the algorithm
won't let the directory be removed and the directory will be re-created
2014-10-21 12:10:12 +02:00
Olivier Goffart
56316bc980
csync_reconcile: remove useless debug output
2014-10-21 11:47:18 +02:00
Klaas Freitag
21c8e65d13
csync tests: Fix test after db changes.
2014-10-21 11:26:04 +02:00
Olivier Goffart
86d8079739
Reconcile: Make sure not to loose new files added in a directory removed on the server
...
Found while investigating #2296
The problem is that we should not remove a directory locally if it contains
modified files.
But the modification time of the directory is not necessarily chaning (so
the instruction of the directory may still be NONE)
We have to move the child_modified test a bit down to be recursive
2014-10-21 10:38:21 +02:00
Markus Goetz
5d048c18bc
Sqlite3: Switch to WAL
...
This is faster.
2014-10-20 23:09:28 +02:00
Markus Goetz
0fb779d363
SyncEngine: De-initialize recursive PROPFIND value correctly
2014-10-20 22:24:28 +02:00
Markus Goetz
d33b68ccc9
CSync: Error out if DB error
2014-10-20 19:32:06 +02:00
Klaas Freitag
b5736fb5a7
Sql: Handle SQLITE_BUSY properly for sqlite3_step and sqlite3_prepare.
...
Repeat the statements a couple of times and sleep in between.
2014-10-18 16:16:29 +02:00
Klaas Freitag
7822a6b000
csync_statedb: Finalize the precompiled statements after discovery.
...
As described in http://www.sqlite.org/cvstrac/wiki?p=MultiThreading precompiled
statements should not be used across thread borders. However, the reconcile
phase would reuse the statements if defined (it calls statedb function from
a different thread) so it is saver to finalize them at the end of the
update run.
2014-10-18 14:18:11 +02:00
Olivier Goffart
a5bd437d48
Propagator: Fix renaming of files and case confflicts
...
Better fix for #1385 and #2318
2014-10-17 16:15:03 +02:00
Markus Goetz
1d5b3aadea
sqlite3: Bundle 3.8.6 for Mac and Windows
...
it is linked into ocsync.
2014-10-16 17:38:45 +02:00
Klaas Freitag
6c92076ec3
tx.pl: Adopt test t6.pl to the new way of handling precondition failed.
2014-10-15 19:25:34 +02:00
Klaas Freitag
74ec90c725
tx.pl: Fix sharing api url, some whitespace fixes.
2014-10-15 13:28:53 +02:00
Markus Goetz
b285e98988
SQlite: Print versions we use
2014-10-11 17:33:35 +02:00
Olivier Goffart
7e898cf60c
SelectiveSync: rename blacklist to selectiveSyncBlackList in some places
...
Issue #2301
2014-10-11 16:24:45 +02:00
Klaas Freitag
2f5cea0e73
owncloudcmd: Add a custom ssl verification callback for neon.
...
That fixes the SSL related problems we had with ci.owncloud.org
2014-10-11 15:55:37 +02:00
Markus Goetz
75dbf12ae6
CSync: Remove dead code
2014-10-10 11:44:40 +02:00
Olivier Goffart
661fe5df66
csync_statedb: fix inverted logic in testing if the sqlite was compiled with threads
2014-10-10 10:12:54 +02:00
Klaas Freitag
61967f6e1b
csync tests: conform to read only db.
2014-10-09 17:45:20 +02:00
Klaas Freitag
edf7cd29dd
csync statedb: Set PRAGMA synchronous to NORMAL for read only db.
2014-10-09 10:05:20 +02:00
Klaas Freitag
27318dded6
csync statedb: Issue a warning if sqlite is not compiled thread safe.
2014-10-09 10:05:20 +02:00
Klaas Freitag
11fe0c5b4b
csync statedb: Open the statedb in read only mode and with mutex set.
...
For that, sqlite3_open_v2 is used with the appropiate flags.
2014-10-09 10:05:20 +02:00
Klaas Freitag
6c2ce06fea
tx.pl: Set the SSL relaxing env variable.
2014-10-03 10:33:30 +02:00
Olivier Goffart
fe1653ede6
csync_update: don't recurse into ignored directory.
...
This save some time when selective sync deselected a large tree
2014-09-26 12:35:56 +02:00
Markus Goetz
6d94acee8f
permissions: Fix root properties if no permissions used
2014-09-25 10:24:51 +02:00
Klaas Freitag
2e12acdf32
doc: add a memo about the issue that defines the permission flags.
2014-09-24 16:35:50 +02:00
Christian Kamm
eb1b17e8e4
CSync tests: Add t1.cfg to gitignore.
2014-09-19 14:21:14 +02:00
Olivier Goffart
1cd5681967
permissions: Remember the permissions for the root folder
2014-09-19 10:58:52 +02:00
Klaas Freitag
fc36e7eccf
tests: Add a csync exclude test to check toplevel excludes.
2014-09-18 15:34:24 +02:00
Klaas Freitag
0cc2bbf5d9
csync exclude: Export the csync_exclude_add function in debug mode
2014-09-18 15:34:24 +02:00
Christian Kamm
a88ac00115
SyncEngine: Better reporting when ignoring hardlinks. #2217
...
Also touch csync to actually let us know it's ignoring the file
due to it having hard links.
2014-09-18 11:32:29 +02:00
Christian Kamm
0bd73788f4
Doc: Update csync test script README.
2014-09-17 16:18:55 +02:00
Olivier Goffart
292a7357bd
t1.cfg.in: saner placeholder executable name
...
Now it is owncloudcmd and not csync
2014-09-17 14:39:34 +02:00
Christian Kamm
0eb9401c62
File change detection: Also look at file sizes.
...
See #2167 and #2169 .
* csync_detect_update: Reupload a file if the sizes differ, similar
to how we reupload if the mtimes differ.
* PropagateUploadFileQNAM::slotPutFinished(): Abort an upload if the
size changed, similar to how we abort an upload if the mtimes changed.
2014-09-17 09:05:13 +02:00
Olivier Goffart
a4dbf5942c
owncloudcmd: restart the sync if required
...
Fixes #2038
2014-09-12 17:23:01 +02:00
Olivier Goffart
76f0f3cbf2
csync_vio_local on windows: fix overflow when computing the size of file > 4GiB
...
MAXDWORD is 0xFFFFFFFF, so if we add one, it overflows and is 0.
We need to cast it to 64 bits before
2014-09-11 11:10:58 +02:00
Daniel Molkentin
2dfbc2058f
Win32: ignore files ending in '.' or at least one space
...
Fixes #416
Fixes #2176
2014-09-10 15:21:19 +02:00
Olivier Goffart
79ee6c2f3b
csync_vio_local on windows: fix overflow when computing the size of file > 4GiB
...
MAXDWORD is 0xFFFFFFFF, so if we add one, it overflows and is 0.
We need to cast it to 64 bits before
2014-09-10 13:21:31 +02:00
Olivier Goffart
fa962b7f53
csync_update: fix compilation warning
2014-09-10 11:08:00 +02:00
Markus Goetz
1909b465dc
CSync: Show file size and inode during update traversal
...
With the previous code, we saw those values only when the file/dir was also in the local DB
2014-09-05 15:23:33 +02:00
Olivier Goffart
a73fbccf8c
t4.pl: add a test to test that ignored file are not deleted
2014-08-28 19:33:52 +02:00
Klaas Freitag
f1fb36bcb8
Tests: Get rid of the Carp package that ogoffart does not have.
...
Recommendation: Use a decent distribution! But anyway....
2014-08-28 18:10:53 +02:00
Olivier Goffart
d4bbd28757
csync: remove ignored_cleanup: it's not used anymore
2014-08-28 17:16:51 +02:00
Olivier Goffart
98b7248df0
reconcile/update: don't remove directory that contains ignored files
2014-08-28 17:16:17 +02:00
Olivier Goffart
79d13d9242
Selective sync: deselecting a folder removes it from the local file system
2014-08-28 15:53:49 +02:00
Markus Goetz
449abace66
CSync: Ignore OS X files with hidden flag
2014-08-21 16:43:24 +02:00
Klaas Freitag
e06e5fe55f
Excludes: Fix unit tests for the new exclude load interface.
...
Also removed some commented lines.
2014-08-21 13:12:05 +02:00
Klaas Freitag
dc8f437b31
Excludes: Add an context free implementation of exclude file loading.
...
So that we are more thread safe.
2014-08-21 12:43:04 +02:00
Olivier Goffart
936252765a
Merge branch 'master' into selective_sync
...
Conflicts:
src/mirall/syncengine.cpp
src/mirall/syncengine.h
2014-08-18 14:44:43 +02:00
Klaas Freitag
ddbe181e48
Update phase progress: Check if callback is defined.
2014-08-18 11:51:45 +02:00
Markus Goetz
64a7025522
CSync: Add a 30 second connect (not read) timeout
2014-08-15 15:54:13 +02:00
Markus Goetz
ce2741cebc
SyncEngine & UI: Progress notifications for update phase
...
For each directory (local and remote, we have UI update throtting code)
a signal is emitted.
It is used by the settings dialog and the tray menu.
2014-08-15 15:28:35 +02:00
Olivier Goffart
c1831f4946
Selective sync: use a black list instead of a white list
2014-08-15 12:29:10 +02:00
Olivier Goffart
4b2c1bacd1
Merge remote-tracking branch 'origin/master' into selective_sync
2014-08-15 10:28:50 +02:00
Klaas Freitag
b09498d852
csync journal: Improve get_below_path query.
...
Add another index on the pathlen column. Use that column to deselect
all rows that are shorter than the path to search files below. That
shrinks the amount of rows to examine using LIKE tremendously by
a cheaply to query for criteria.
2014-08-14 13:52:44 +02:00
Klaas Freitag
8bc0d9acd3
Updater: Added a bit of useful logging.
2014-08-14 11:07:31 +02:00
Klaas Freitag
73325bcd41
csync statedb: Fixed handling of sqlite reply value.
2014-08-14 11:07:31 +02:00
Klaas Freitag
1b5bbfdad3
csync statedb: Set sqlite3_busy_timeout to 5 seconds.
2014-08-14 11:07:31 +02:00
Markus Goetz
4c0891a22e
Tests: Give a more random name to test directories
...
Conflicts:
csync/tests/ownCloud/ownCloud/Test.pm
2014-08-12 16:27:03 +02:00
Olivier Goffart
4ff0e7e0a2
Silent some warnings
2014-08-12 14:03:04 +02:00
Olivier Goffart
12459bf07e
selective sync: fix whitelist matching
2014-08-12 11:43:42 +02:00
Olivier Goffart
7e009667a2
Selective sync: ignore the files that are not in the selective sync white list
2014-08-11 18:42:24 +02:00
Klaas Freitag
12f5e4b46e
csync oC Util: set field flag correctly to avoid etag memleak.
...
The fields varialbe should contain or'ed flags of the fields set
in the csync_vio_file_stat_t struct. The problem was that the field
for CSYNC_VIO_FILE_STAT_FIELDS_PERM was assigned rather than or'ed
which makes the release function for the struct not freeing the
etag memory => memleak.
2014-08-07 23:14:21 +02:00
Klaas Freitag
c3f8e099f4
tests: Never stumble over an already existing test share dir.
2014-08-07 15:45:17 +02:00
Klaas Freitag
e71ce01f90
tests: Some more tests with local files and shares.
2014-08-07 12:48:14 +02:00
Olivier Goffart
6827f9977c
Merge branch 'il'
...
Conflicts:
doc/ocdoc
2014-08-07 12:15:50 +02:00
Olivier Goffart
6d24bd0361
journaldb: Fix that fileid might be missing in the db
...
When recovering from a inalid move operation, we call
avoidReadFromDbOnNextSync. This will remove the fileid from the db so
we don't detect a move on the next sync. But we want the next sync to fetch
the file id again, and this can only happen if we don't read them
from the db and do the actual PROPFIND, this is done by avoidReadFromDbOnNextSync
However, if there is propagation in that source directory later, it
will overide the invalid etag with the real one and we will not uissue the PROPFIND
to fetch the fileid.
We must therefore also protect the future write to the DB when calling
avoidReadFromDbOnNextSync
2014-08-07 12:14:45 +02:00
Markus Goetz
22c1629dd3
SyncEngine: Keep csync_journal with proper values for fileId and remotePerm
...
Before this patch, we had a lot of empty rows because we created
the SyncFileItems with the wrong(=local) data.
2014-08-07 10:14:14 +02:00
Klaas Freitag
fe2e4d87c5
tests: Fix t5: work with ownCloud 7 sharing.
2014-08-06 17:19:02 +02:00
Klaas Freitag
e9c4635f6b
tests: Add another two seconds break, hope to make it work in virt. env.
...
Tests fail randomly on the CI computer which is virtualized. Maybe this
fix helps.
2014-08-06 11:34:35 +02:00
Olivier Goffart
f1ad82d0ba
t2.pl Fix the test testing that moving a file that was just added do not create duplicate
2014-07-29 13:58:21 +02:00
Klaas Freitag
8d85516e72
tx.pl: Add a chunking update test, test for precondition failed.
2014-07-22 18:07:34 +02:00
Klaas Freitag
4dfe0fad7d
tests: Big file chunking, change an existing big file to trigger update
...
This failed on oC7
2014-07-22 10:45:03 +02:00
Klaas Freitag
77e3480b2f
csync oC Util: set field flag correctly to avoid etag memleak.
...
The fields varialbe should contain or'ed flags of the fields set
in the csync_vio_file_stat_t struct. The problem was that the field
for CSYNC_VIO_FILE_STAT_FIELDS_PERM was assigned rather than or'ed
which makes the release function for the struct not freeing the
etag memory => memleak.
2014-07-21 13:19:36 +02:00
Olivier Goffart
8a88ca6f34
Merge branch 'il'
...
Conflicts:
src/mirall/propagator_legacy.h
2014-07-18 17:00:38 +02:00
Olivier Goffart
336e74b992
csync_owncloud: fix the name of the permissions property
2014-07-18 16:52:04 +02:00
Klaas Freitag
74b3e2ce3f
tests: Another try to get around the jenkins test problem.
2014-07-18 12:20:14 +02:00
Klaas Freitag
2981b37219
Use file size of factor of four because of the createLocalFile algorithm
2014-07-17 10:29:13 +02:00
Klaas Freitag
2a5691e575
tests: Fix assertion.
2014-07-16 17:26:06 +02:00
Klaas Freitag
774432066e
tests: Reverted previous change, do not append in createLocalFile()
2014-07-16 17:25:18 +02:00
Klaas Freitag
d5a8661480
tests: do not use system any more to modify files, rather perl native.
2014-07-16 14:06:57 +02:00
Klaas Freitag
9dacad99fa
t1.pl: Change the corruption creation command.
2014-07-10 12:07:28 +02:00
Olivier Goffart
cbc7942a00
Added t8.pl that test case sensitivity issues
...
Made some change in the .cpp code in order to be able to test
the code when the file system is case sensitive
2014-07-09 22:44:08 +02:00
Olivier Goffart
9c3c4bac66
Merge remote-tracking branch 'origin/il'
2014-07-01 20:37:42 +02:00
Olivier Goffart
2f284209d8
Permissions: When moving is not allowed, fallback to delete and upload
...
We decided that we never want to rename a directory behind the
back of the user as the user may be using files in the directory
during the sync.
If moving is not allowed, we just erase the inode form the database so
the next sync will try to do an upload and delete and recover from there
using normal resolution.
This also add some code to update the inode back to the db when it is detected
as changed.
2014-06-27 15:30:08 +02:00
Olivier Goffart
9066ad5790
t7.pl: Test that deleting a directory restores it and all its sub directories
2014-06-27 11:31:35 +02:00
Olivier Goffart
62d0e670dc
Add t7.pl Test for operation of files with restrictions
2014-06-27 11:22:53 +02:00
Olivier Goffart
21d7d8988a
t1.pl: add a sleep to make sure the mtime of the files are different
...
It could be that the files are changed in the same second if the previous
sync was fast, and therefore the changes not detected.
2014-06-26 13:11:47 +02:00
Olivier Goffart
fbadadc377
propagator: Fix folder duplication if the folder is renamed on the server while uploading
...
While uploading a new folder, if the folder is renamed on the server
when still uploading, the result will be that the files that are already
uploaded will end up in the new filder name, but the file that were
not still are in the old folder.
After renaming, all the new uploads wil fail with an error on this sync
because the parent directory don't exist.
But they were uploaded with the old name in the next sync because
the renaming was not detected because the file id was not in the DB
Fix the problem by fetching the file id always when creating a new
directory, on the next sync, and saving it in the database ummediatly
https://github.com/owncloud/enterprise/issues/191
2014-06-24 12:00:13 +02:00
Olivier Goffart
8de3bda0b1
csync_update: update the permission in the db when they change
...
The current code only update the permissions in the DB when
the permission becomes non-empty.
Now we update the permission each time they change.
That way the code is the same for file id and permission so it is
simpler.
2014-06-24 11:10:50 +02:00
Olivier Goffart
9c0a21a5fb
Permission: keep a space if the permission is empty
...
To distinguish no permission present to nothing is allowed.
That was the intention of the old code but it did not work as
the first if was always taken
2014-06-24 10:52:42 +02:00