| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
It turns out that if any storage engine has to open itself during
a callback it would end up violating the guarantee of a single writer.
This change in the test suite changes things to use couch_server so that
storage engines are now free to do as they want reopening themselves.
|
|\
| |
| |
| |
| | |
apache/COUCHDB-3326-clustered-purge-pr2-simplify-mem3-rep
Simplify logic in mem3_rep
|
|/
|
|
|
|
| |
Previously there were two separate database references and it was not
clear which was used where. This simplifies things by reducing it to a
single instance so that the logic is simpler.
|
|\
| |
| |
| |
| | |
apache/COUCHDB-3326-clustered-purge-pr1-misc-cleanup
[1/5] Clustered Purge - Misc Cleanup
|
| |
| |
| |
| | |
Modernize and fix the eunit tests in fabric_doc_open.erl
|
| |
| |
| |
| |
| |
| | |
This fixes a minor race by opening the database before closing it. This
was never found to be an issue in production and was just caught while
contemplating the PSE test suite.
|
| |
| |
| |
| |
| |
| |
| |
| | |
There's a race where if a database is opened with a default_security set
and it crashes before first compact, and is then reopened after the
default_security option has changed that it will pick the second
security option. This change fixes the relatively obscure bug
that was only found during testing.
|
| | |
|
|/ |
|
|\
| |
| | |
Add `POST /_node/$node/_restart` endpoint
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
|
| |
We need to be able to restart CouchDB from integration test suite.
We used to have this feature, but it was removed.
This PR brings this functionality back under `/_node/$node/_restart`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`#leaf.atts` data structure is a `[{Position, AttachmentLength}, ...]` proplist
which keeps track of attachment lengths and it is used when calculating
external data size of documents. `Position` is supposed to uniquely identify an
attachment in a file stream. Initially it was just an integer file offset. Then,
after some refactoring work it became a list of `{Position, Size}` tuples.
During the PSE work streams were abstracted such that each engine can supply
its own stream implementation. The position in the stream then became a tuple
that looks like `{couch_bt_engine_stream,{<0.1922.0>,[{4267,21}]}}`. This was
written to the file the `#leaf.atts` data structure. While still correct, it is
unnecessarily verbose wasting around 100 bytes per attachment, per leaf.
To fix it use the disk serialized version of the stream position as returned
from `couch_stream:to_disk_term`. In case of the default CouchDB engine
implementation, this should avoid writing the module name and the pid value for
each attachment entry.
|
|\
| |
| | |
Expose document update errors to client
|
|/
|
|
|
|
|
|
|
| |
Currently, errors resulting from race conditions during document updates
don't get handled correctly, result in a case error, and sending a 500
to the client.
This change instead allows errors, which occur in the race to sync
a doc update across the cluster, to be exposed to the client.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If _session response is 401 and WWW-Authentication header is set assume
endpoint has require_valid_user set. Remember that in the state and
retry to reinitialize again. If it succeeds, keep sending basic auth
creds with every subsequent _session request.
Since session uses the replicator worker pool, it needs to handle worker
cleanup properly just like couch_replicator_httpc module does. If response
headers indicate the connection will be closed, don't recycle it back to the
pool, otherwise during an immediate retry there will be a connection_closing
error, instead follow what the server indicated and stop the worker then
release it to the pool. The pool already knows how to handle dead worker
processes. This is needed with this commit, because we now have a pattern of an
immediate retry after an auth failure.
Fixes #1550
|
|\
| |
| | |
Ensure we only receive the correct DOWN message
|
|/
|
|
| |
relates to issue #1544.
|
|
|
|
|
|
|
|
|
|
| |
This moves the Mango selector matching down to the shard level.
this would mean that the document is retrieved from the index and
matched against the selector before being sent to the coordinator node.
This reduces the network traffic for a mango query
Co-authored-by: Paul J. Davis <paul.joseph.davis@gmail.com>
Co-authored-by: Garren Smith <garren.smith@gmail.com>
|
|
|
|
|
|
|
| |
Add a ping message to rexi to avoid any long running operations from
timing out. Long running operations at the node level can exceed the
fabric timeout and be cancelled. Sending a ping message back will
stop that from happening.
|
|\
| |
| | |
Support callback module data provider
|
| | |
|
| | |
|
|/ |
|
| |
|
|
|
|
| |
Fixes #1409
|
| |
|
|
|
|
| |
Fixes issue #1028
|
|\
| |
| | |
Fix _stats reducer when map function emits array
|
|/ |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Sometimes it is hard to guess what went wrong when application
started via `test_util:start_applications` or `test_util:start_couch`
is unable to start. Since the traceback was truncated.
This change would print the reason in addition to the traceback.
|
| |
|
| |
|
| |
|
|
|
|
| |
Relates to #1153 and #1176
|
|
|
|
| |
This reverts commit 817b2b6f5f0883092df60c1ec8ec7ec6d6094a23.
|
|
|
|
| |
This reverts commit 89a727b625e74f40fcf612bda18421b8fc21eead.
|
|
|
|
| |
This reverts commit 6ffe0421ac524138a6b48fd010f2540631b83d16.
|
| |
|