Age | Commit message (Collapse) | Author |
|
During a meeting with pixelated we were asked to ensure that the u1db
revision system was working for the shared database. This commit adds a
test to make sure that documents in the shared database can be updated
successfully if the include the correct revision, but will fail if the
include the incorrect revision.
Resolves: #8842.
|
|
it was passing way too many arguments in py2.
- Resolves: #8843
|
|
When hundreds of concurrent document creations are spawned during tests,
test runs in slower machines may fail with "db is locked" error.
Increasing the timeout and number of retries in the sqlcipher adbapi
level may help avoiding that.
|
|
Docker scripts are only used for CI and do not need to be in this
repository. Beause of that, we decided to moved the docker scripts to a
private repository where dockerfiles for other parts of leap also live.
|
|
|
|
SQLCipher synchronous benchmark tests were introduced when we started
developing benchmark tests to compare synchronous and asynchronous code.
Synchronous access to sqlcipher database is not used in soledad, and
those tests are much slower than asynchronous tests (more than 10 times
using ssd drive), so we want to avoid running them on ci. This commit
introduces a "synchronous" marker and avoid running tests markes as such
in ci environment.
|
|
There were some changes needed in pytest-benchmark so we could
successfully use it for soledad benchmarks graphing:
https://github.com/ionelmc/pytest-benchmark/pull/73
https://github.com/ionelmc/pytest-benchmark/pull/74
https://github.com/ionelmc/pytest-benchmark/pull/75
The contributions were accepted but not released yet, so this commit
uses the code from upstream git repository's master branch.
|
|
|
|
|
|
|
|
|
|
|
|
Issue #8758 rounded doc size considering we would add some kind of
padding to the document. Since we arent removing the pad, this commit
makes the client discover the size from the decrypted amount. Proper
padding and strip should be done in the future.
- Related: #8758
- Related: #8814
|
|
Check what server has, what we have, compare, fetch missing.
- Related: #8808
|
|
|
|
- Related: #8807
|
|
This method will gather a list of local docs and a list of remote docs,
compare them and send docs which server doesn't have.
- Related: #8807
|
|
The debian package for libsqlcipher does not enable the use of usleep(),
and that might cause timeouts when doing concurrent access to sqlcipher
databases.
See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859685
In benchmark tests we use twisted's asynchronous dbapi for creating
thousands of documents, and if usleep() is not enabled this operation is
very likelly to fail with a "db is locked" error.
This commit adds a workaround for benchmark tests by reinstalling
pysqlcipher with the "--bundled" option, what causes libsqlcipher to be
built and bundled in the python package, with usleep() enabled.
Resolves: #8835
|
|
this commit deliberately *duplicates* the dependency information between
the setup.py and requirements.pip.
The rationale behind it is that one of them is the generic dependency
information, to be passed to system helpers in order to package it.
The requirements.pip has any pinning information that we want to impose
during development, and it behaves as a well-known set.
Read https://caremad.io/posts/2013/07/setup-vs-requirement/ for more
explanations.
- Resolves: #8830
|
|
doc_id wasn't being stored, loaded or used anywhere except for
authentication. This commit removes it and uses a fixed value for rev
since blobs is supposed to be immutable.
- Resolves: #8813
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Downloading until there is a space then splitting the content was a
mess. Extracted this behaviour out of DecrypterBuffer into a new
component so it eases testing by introducing a single responsibility
class.
|
|
|
|
Raising was generating 500, which is a generic status code for server
side errors. This commit adds proper status code of 409 while handling
the error on client side by translating the code into a proper exception
class.
|
|
|
|
|
|
Caching .tox breaks when installing new dependencies. Caching pip
instead and asking tox to always recreate will ensure newer dependencies
are installed while getting existing ones from cache.
|
|
|
|
copy call returns a closed file handler, instead we can query for the
blob after insertion and use the returned file handle to be consumed for
upload.
A better solution would be to "pipe" the writes into the database into
the upload, but that involves solving a larger set of issues to be done
later.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|