Age | Commit message (Collapse) | Author |
|
Soledad Server was previously using something in /srv to store blobs in
the server side. Debian/lintian doesn't like that at all, so we are
changing to /var/lib/soledad/blobs.
Closes: #8948
|
|
From code review.
-- Related: #8945
|
|
This commit makes all write calls happen inside the same thread that
opened the blob handle. Doing it outside using FileBodyProducer will
yield and run the writes across random reactor threads. This is an
attempt to fix #8945
-- Resolves: #8945
|
|
Moved schema creation and migrations to the pragma locked call, so we
avoid it running concurrently on a thread pool.
-- Resolves: #8945
|
|
|
|
It isn't closed by Twisted like the producer is.
-- Resolves: #8924
-- Related: #8932
|
|
AES can generate base64 valid strings, making this test flaky. Try to
decrypt using armor=False instead.
|
|
|
|
|
|
Soledad's events server might be a pain for tests because if it is not
properly initialized and shut down there might be parts of the server
missing or leftover in the reactor after tests are run. With the recent
changes to the way tests are invocated, there's the need to further
isolate events server startup for benchmarks, otherwise it will conflict
with other tests. This commit moves the events server setup to inside
the pytest_collection_modifyitems() hook, where we can check if the
benchmark subdir was selected and properly start the events server if
needed.
|
|
Use subdir path to select/deselect benchmark tests.
Because of the way pytest and pytest benchamrk select/deselect tests, it
makes more sense for this test suite to use a --subdir option to select
only a subset of tests and a blacklist of subdirectories that should not
be run unless explicitelly asked to.
This commit adds a --subdir option, that will deselect all tests no in
./tests/<subdir> when the option is passed to pytest. Also, a blacklist
is added so, unless explicitelly added as a --subdir, tests in
blacklisted subdirectories will not be run.
The reasons for this modification are:
- pytest-benchmarks selects/deselects tests based on the type of their
fixtures. This means that fixtures have to be instantiated previous to
test selection/deselection, something that may cause side effects that
we want to avoid.
- the usual test suite is run for all benchmarks, while some tests
should only be run in specific situations (as is the case of
benchmarks and responsiveness tests). It is saner to implement subdir
selection than marking all tests with pytest marks and using them to
select/deselect.
|
|
|
|
|
|
|
|
Hardcoded and repeated user uuids can lead to accidental concurrent
operations between test cases, breaking isolation and creating random
failures. This commit improves it a bit.
|
|
Adds two new columns for sync status and retries. Also some initial
rough logic for upload retry limiting.
-- Resolves: #8823
-- Related: #8822
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Avoid the "maintainer-script-ignores-errors postinst" error.
|
|
Soledad Server Debian package calls adduser in postinst, so it also has
to depend on it for installation.
|
|
As we now copy the migration script into the debian package, the
.gitignore file would also be copied. The simplest is to just remove it
from the repo.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- create payloads before running tests
- use different group names for different amount/sizes
- move legacy index creation to setup function
- limit concurrency on blobmanager to 2 (same as thread pool size)
- add a VACUUM call to observe blobs db size decreasing between tests
- properly cleanup server between blobs test runs
- refactor blobs pipeline so it makes more sense and is easier to read
|
|
The number of threads in the blobs databae thread pool can't be smaller
than the number of attemps to write concurrently to the database,
otherwise different kinds of concurrency problems may arise. By setting
the minimum and maximum number of threads to the same number, we make
sure there will always be that number of available threads for
interaction with the blobs db.
|
|
|
|
|
|
|
|
|
|
Schema was using a default value instead of using the one passed as a
parameter. Additional test for formatter is also included.
-- Related: #8867
|
|
Incoming API is supposed to be able to, given a valid service token,
write a incoming document into any user database. Leaving the parameter
as 'uuid' triggers defensive code against unauthorized accesses between
users. This commit renames the parameter so this isn't checked.
-- Related: #8867
|
|
|
|
-- Related: #8867
|