Age | Commit message (Collapse) | Author |
|
bump leap.common min required version, new change needed
'collect_plugins'.
|
|
|
|
master and develop "diverged" because a merge commit, this moves us
back to good track.
|
|
When trying to use an unexisting list function, to alter a view, the error is
not a missing document error, but an obscure "TypeError" saying that "point is
undefined" because of the way the javascript code in couchdb server tries to
find the list function.
This commit adds a catch for that error and raises the proper exception in the
soledad couch module.
|
|
|
|
HTTP client cached connections will hang around in the reactor if they are not
properly cleaned up, and might raise a "reactor unclean" message on shutdown.
This commit adds a close() method to the client http target that will cleanup
those connections.
|
|
|
|
Using real uuid to separate Locks on each test allow them to
be run in parallel. Using real uuid also allows parallel syncs.
This is being done to allow test suite to run in parallel on future.
|
|
after suggestions in the review
|
|
|
|
|
|
|
|
|
|
|
|
implementing a generic plugin interface to allow other modules to react
to soledad syncs, receiving a list of document ids that they've
subscribed to.
- Resolves: #6996
- Releases: 0.7.1
|
|
|
|
Once upon a time we needed to pin the PyOpenSSL version to avoid unneeded
crypto deps (see https://leap.se/code/issues/5368#note-5). Since then, jessie
was released and PyOpenSSL 0.14 is now shipped with it. We have removed that
pinning from the debian package, and it is not needed here.
|
|
|
|
Tag version 0.7.0.
Conflicts:
CHANGELOG
client/src/leap/soledad/client/__init__.py
client/src/leap/soledad/client/sqlcipher.py
client/src/leap/soledad/client/target.py
server/pkg/soledad-server
|
|
Tag version 0.7.0.
Conflicts:
client/pkg/requirements.pip
common/pkg/requirements.pip
|
|
When async decrypting, we want to finish as fast as possible. When encrypting,
though, we don't have such a rush. With an encryption loop period of 2
seconds, we're able to encrypt 30 documents in one minute (the current bitmask
client sync period), which is meaningful: should moderatelly use the processor
while not syncing and relief from some work when actually syncing.
|
|
Previous to this change, the actual encryption method used to run on its own
thread. When the close method was called from another thread, the queue could
be deleted after the encryption method loop had started, but before the queue
was checked for new items.
By removing that thread and moving the encryption loop to the reactor, that
race condition should disappear.
Closes: #7088.
|
|
Queue exceptions are not in multiprocessing.Queue module, but in plain Queue
instead.
|
|
|
|
|
|
|
|
|
|
- Related: #6359
|
|
|
|
Now the CouchDB based tests will try 3 times before give up due to
timeout or some temporary error. The stop function will also execute
properly even if the process wasn't created, leaving no lost files or
folders behind.
|
|
I tested that code and this cant happen. We need to iterate keys and
then ask 'del'. The previous method raised: RuntimeError: dictionary
changed size during iteration
|
|
When handling this exception Python got lost because the import was
incorrect. Queue.Empty comes from Queue, not from multiprocessing.Queue
|
|
As described in #4691, sometimes couch just hangs and all testing
freezes. This is due to no output from couch (sometimes meaning that an
error on boot wasn't logged). This adds a timeout and checks for it
while booting for tests. Closes #4691
|
|
CouchServerState does not use two extra parameters anymore. Tests are
now reflecting this change. Relate to #6833
|
|
The .ini used before was very old and did not contain all the config
values that couch needs. Using -n resets the configuration file chain,
making it use what is provided without including the system defaults
needed. To make it work with all versions the util will now copy
default.ini to temp dir and use it as additional config, overwriting
only what is needed with couchdb.ini.template provided.
|
|
this branch includes many changes that improve the asynchronous
retrieval of the sync docs, and the parallel decryption of the encrypted
documents.
|
|
|
|
Instead of opening one TCP connection for each HTTP request, we want to reuse
connections. Also, we need to be able to verify SSL certificates. This commit
implements both features in the twisted http client sync.
|
|
The whole idea of the encrypter/decrypter pool is to be able to use multiple
cores to allow parallel encryption/decryption. Previous to this commit, the
encryptor/decryptor pools could be configured to not use workers and instead
do encryption/decryption inline. That was meant for testing purposes and
defeated the purpose of the pools.
This commit removes the possibility of inline encrypting/decrypting when using
the pools. It also refactors the enc/dec pool code so any failures while using
the pool are correctly grabbed and raised to the top of the sync deferred
chain.
|
|
When we initialized the async decrypter pool in the target's init method we
needed a proxy to ensure we could update the insert doc callback with the
correct method later on. Now we initialize the decrypter only when we need it,
so we don't need this proxy anymore. This commit removes the unneeded proxy.
|
|
We have to make sure any failures in asynchronous decryption code is grabbed
and properly transmitted up the deferred chain so it can be logged. This
commit adds errbacks in the decryption pool that grab any failure and a
check on the http target the failure if that is the case.
|
|
|
|
|
|
|
|
This commit does the following:
* Remove the autocreate parameter from the sync() method.
* Remove the syncing lock from the sync module because it did the same job
as the lock in the sqlcipher module.
* Remove the close/stop methods from sync module as they don't make sense
after we started to use twisted in client-side sync.
|
|
This change uses twisted deferreds for the whole syncing process and paves the
way to implementing other transport schemes. It removes a lot of threaded code
that used locks and was very difficult to maintain, and lets twisted to the
dirty work. Furthermore, all blocking network i/o is now handled
asynchronously by the twisted.
This commit removes the possibility of interrupting a sync, and we should
reimplement it using cancellable deferreds if we need it.
|
|
The access to the sync db was modified to use twisted.enterprise.adbapi, but
only the asynchronous decryption of incoming documents during sync was
adapted. This commit modifies the asynchornous encryption of documents to also
use the adbapi for accessing the sync db.
|
|
|
|
When we started implementing the sync db, one of the ideas was to reuse the
data in the database in the case of a sync interruption. We don't do that now
and thus the pending documents exception is unneeded. This commit removes that
exception from the code.
|
|
The b64 encoding of the auth token was introducing an illegal character
(\n), which was breaking the authentication step since an exception was
being raised - when that multi-line header was attempted to be built.
this commit fixes that bug.
- Resolves: #6959
|