Age | Commit message (Collapse) | Author |
|
The database initialization on the client sync module is deferred to another
thread. As there is only one thread in the thread pool, this should not be a
problem for now, as operations will actually be queued in that thread. There
was some old code left from when we had to explicitelly wait for the db to be
initialize before using it. This commit removes that old code and introduces
some documentation so we remember to deal with deferred db init if we ever
change the number of threads in the thread pool.
|
|
|
|
Conversion of Twisted failures to string that rely on __str__ or __repr__
might not return all the information we would like to have, especially on sync
failures. This commit asks for a detailed traceback of such failures and logs
them both in Twisted and client logs.
|
|
This commit makes 2 changes that allow sync failures to raise exceptions that
can be caught by the api:
1. Remove try/except statements in sync.py level that would prevent an
exception to be caught by the soledad client api.
2. Ensure that if an asynchronous decrypting process fails the exception
will be re-raised to eventually reach the api.
Related: #6757.
|
|
With new soledad async api, we need to catch errors using errbacks instead of
catching exceptions explicitelly. This commit fixed the api sync() call to
intercept sync failures, log them, and do not propagate them down the callback
chain.
|
|
|
|
This commit removes some leftover code from a time when Soledad Server used to
check for permissions on certain databases when starting (i.e. shared and
tokens databases). This was later removed as correct permissions enforcement
was relayed to tapicero.
Closes: #6833.
|
|
With changes in soledad client api to make it async, the supporting scripts
also have to be updated. This commit also adds more functionalities as
exporting incoming mail and public or private keys.
|
|
because in OCD we trust.
|
|
In the past, we wanted dependency on leap.common to be optional, but now
because of the explicit use of the config path prefix and signaling, we want
to enforce dependency on leap.common.
|
|
Previous to this modification, leap.soledad.common.tests.u1db_tests was being
installed and its files were being included in the debian package. By
excluding *.tests and *.tests.* from find_packages() in setup.py, we make sure
that no test file will be installed not included in the final debian package.
|
|
Add dependency on twisted for Soledad Client. Also remove minimum twisted
version for Soledad Server because debian stable currently distributes 12.0.0
and pypi currently distributes 15.0.0.
Closes: #6797
|
|
Any solead release that includes this commit will be incompatible with LEAP
Platform < 0.6.1 because only from that version on the platform implements the
ephemeral monthly tokens databases.
Closes: #6785.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Fix arg passing to syncing failure method.
* Do not try to start sync loop which should be already running.
* Adapt to removal of old multiprocessing safe db, now accesses the
sqlcipher database directly.
|
|
* Add copy of SQLCipherOptions object to avoid modifying the options object
in place when instantiating the sync db.
* Add string representation of SQLCipherOptions for easiness of debugging.
* Make sync db always "ready".
* Fix passing options for sync db initialization.
* Fix typ0 that made SQLCipherU1DBSync._sync_loop be a tuple.
* Do not defer requests for stopping sync to a thread pool.
* Do not make pysqlcipher check if object is using in distinct threads.
* Reset the sync loop when stopping the syncer.
* Fix docstrings.
* Check for _db_handle attribute when closing the database.
|
|
* Remove check for HTTPS address.
* Remove creation of shared database.
* Fix docstrings.
|
|
* Adapt to removal of the old multiprocessing safe database, by directly
querying the sync database.
* Fix docstrings.
|
|
* Get replica uid upon U1DBConnectionPool initialization.
* Fix docstrings.
|
|
* Allow passing shared_db to Soledad constructor.
* Close syncers on Soledad close.
* Fix docstrings.
|
|
|
|
|
|
|
|
|
|
|
|
after drebs review
|
|
|
|
|
|
* Completed mapping of async dbpool
* Fixed shared db initialization.
Stuff To Be Fixed yet:
[ ] All inserts have to be done from the sync threadpool.
Right now we're reusing the connection from multiple
threads in the syncer. I'm assuming the writes are automatically
locking the file at the sqlite level, so this shouldn't pose a
problem.
[ ] Correctly handle the multiprocessing pool, and the callback
execution.
|
|
|
|
* Separate local storage, syncers and shared_db
* Comment out unused need_sync method
* Use twisted LoopingCall
* Create a threadpool for syncs
* Return deferred from sync method
* Do not pass crypto to SQLCipherDatabase
* Pass replica_uid to u1db_syncer
* Rename / reorganize some initialization methods
|
|
* add examples and benchmarks
* remove autocommit mode, allow wal disabling
* lock initialization
* make api use async calls
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The changes introduced in aafa79c0f5 having to do with the cert
verification are incorrect, regarding the use of the newest ssl context
api introduced in python 2.7.9. There the use of the server setup was
taken, instead of the correct client options.
I hereby apologize for the insuficient testing on that fix. It happens
that I wrongly tested in an evironment that did the fallback to
pre-2.7.9 interpreter.
|