Age | Commit message (Collapse) | Author |
|
The new benchmark test for blobs fs backend was rebased from a merge
request in which it was written using the new interface for blobs
backend. After rebase, the test was not reverted to old interface, and
was just failing bad. This commit fixes it.
|
|
|
|
First version, still missing consumer/producer model and some tweaks,
but working.
-- Related: #8809
|
|
|
|
-- Related: #8809
|
|
-- Related: #8809
|
|
|
|
Closes: #8691
|
|
|
|
Accessing _all_dbs slows down the test and open possibilites for
heisenbugs where some old leftover database can change code behavior.
-- Resolves: #9001
|
|
Closes: #9000
|
|
It was None for parallel tests and there is already a mechanism in place
for setting this URL, which avoids it being set in two different places.
|
|
|
|
|
|
When starting up a Soledad Server through the use of a fixture in tests,
a config file is created with the options needed for that test. As the
config file was being created in /etc and not being removed, this was
influencing servers started by other tests that don't use that fixture.
By always using a temporary directory in the server fixture, we make
sure that the config file is used only for that test and is removed
after the test is finished.
Closes: #8995
|
|
|
|
|
|
After we fixed the server to wait for checks before listening on ports
(201ef7a9b979f8c8efaedbe542c631944d8956f4), the TAC test started failing
randomly in our CI, probably because sometimes the server takes more
than 1 second to startup in the CI setup (docker in a vm).
This commit adds a check with retry, and so the test will retry 10 times
with an interval of 1 second before failing.
|
|
|
|
|
|
|
|
Adds the ability to have document that wont be synced. This enables
applications to use soledad to store temporary blobs that should be
discarded later instead of unnecessarily keeping the sync loop busy.
-- Resolves: #8819
|
|
Sync method to propagate deletions in batch locally.
-- Resolves: #8961
|
|
-- Related: #8961
|
|
This commit creates a PENDING_DELETE sync status which can be used to
keep track of whats deleted locally in order to propagate to server
later.
-- Related: #8961
|
|
|
|
|
|
|
|
To avoid corrupting data, Soledad Server checks all user databases
during startup to make sure all of them use the correct schema version.
This was done synchronously, so when there are many databases startup
would take a long time. This commit makes that verification
asynchronous, thus speeding up server startup.
|
|
--Resolves: #8848
|
|
Retry limit was originally specified in #8825 as a protection mechanism,
but #8822 (retry) doesn't specify a retry limit. In fact, blobs is
supposed to retry until transfer is complete using timed delays between
attempts, but never giving up.
-- Related: #8822
-- Related: #8825
|
|
As defined in #8970, this table and the new module will ease adding sync
features such as priority queues and streaming.
--Resolves: #8970
|
|
|
|
So we can have manager, sync, sql and errors in its own places.
--Related: #8970
|
|
|
|
|
|
With the introduction of semaphores in the blobmanager level, there's no
need for them in the benchmark tests now.
|
|
|
|
|
|
|
|
|
|
|
|
- add a MaximumRetriesError exception to encapsulate other exceptions.
- record the pending status before trying to download
- modify update_sync_status to insert or update
- modify retry tests to check number of retries
- add a test for download retry limit
|
|
The way in that concurrency limit was being enforced was such that
transfer attempts were being spawned in groups of 3, and all of them had
to finish before a new group could be spawned. This modification allows
for use of maximum concurrency level at all times.
|
|
It was previously setting to PROCESSED. Also added some tests to check
if the underlying wrapped calls matches the intent.
-- Resolves: #8955
|
|
Notify, log something meaninful and retry at most 3 times before marking
the download as unusable (FAILED_DOWNLOAD).
-- Related: #8825
|
|
Added retry to upload and modified retry implementation to comply with
discussed spec.
According to it, we should wait between retries, something like 1s, 10s,
.. up to 1 minute.
-- Resolves: #8822
|
|
-- Related: #8822
|
|
Instead of querying the server, fetch_missing and send_missing now uses
the PENDING_DOWNLOAD and PENDING_UPLOAD statuses to guide itself on what
to do. This allows the sync mechanism to control when/how to query data
from server and reuse the query data during the sync.
-- Related: #8822
|
|
PENDING_DOWNLOAD is an empty blob, so during blob_manager.get we need to
return empty as it's not available. This status is used during sync.
During put, if we have an empty unavailable blob, then we delete and
replace with is being put, marking it as SYNCED.
-- Related: #8822
|