| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Also includes pointers to couchdb-pkg daemon scripts.
|
|
|
|
|
|
|
|
|
| |
There's a theory that the low memory limits on our CI instances are
causing the tests spawning JS processes to fail. Given that we don't
need them here we can trivially exclude that as a cause of the test
failures.
Fixes #631
|
| |
|
| |
|
|
|
|
| |
approach
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
endpoints following rnewson's suggestion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Because `stop/1` is asynchronous, and casts a stop message and as result the
client process could end getting killed during termination/cleanup phase if
this sequence of events took place:
1. Client calls `stop(ListerPid).`
2. couch_event_sup casts a `stop` message to couch_event_sup gen_server
3. `stop` message is delayed and client continues executing.
4. Client calls something like application:stop/1`.
5. `application:stop/1` terminates couch_event_sup gen_server.
6. App termination kills client process because it is still linked.
So this make the stop synchrounous by using call instead of cast.
Issue #644
|
|
|
|
|
|
|
| |
Helps resolve issue #656. Implementation broken since bigcouch merge.
Replicator oauth hooks are left in place for future work towards
adding cookie-based authentication support.
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Commit 21f9544 enabled the compaction daemon by default. And commit
3afe3ad disabled the compaction daemon at the start of the compaction
daemon tests. Unfortunately, the compaction daemon remains active
during all the other EUnit tests.
I attempted to override the [compactions] _default line in the file
rel/files/eunit.ini but specifying `_default=` or `_default=[]` did not
provide the desired behaviour.
This change disables the _default config as part of
`test_util:start_couch` after startup. This means there is a very
brief period during which the daemon is running, but in empirical
testing the only thing I've seen it manage to do is compact `_dbs`
before being disabled.
Tested with `make soak-eunit` for 3 hours; this seems to eliminate
the `all_dbs_active` error we've been seeing in CI runs since the
compaction daemon was enabled by default.
|
|/ |
|
|\
| |
| | |
Pass db open options to fabric_view_map
|
| |
| |
| |
| |
| | |
Pass database open options and user_ctx to query_view
to allow proper access for _view and _list queries.
|
| | |
|
| | |
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
| |
Couldn't remove all sleeps as they are also used to
assert that nothing happened in a period of time or
to track generalized progress over a period of time
(the heartbeat test).
Issue #630
|
|\
| |
| |
| |
| | |
cloudant/fixup-for-fix-replicator-progress-reporting-2
Fix couch_replicator_changes_reader:process_change
|
| |
| |
| |
| |
| | |
The size of the tuple was changed in all clauses of process_change but one.
Remove TS argument from `#doc_info{id = <<>>}` clause of process_change.
|
| | |
|
|/ |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This test case is failing because of late ddoc_cache eviction.
It'd be nice to validate that we correctly invalidate our
cached CommonJS modules, but ddoc_cache makes such a test
infeasible.
See https://github.com/apache/couchdb/commit/85cfc71beb089c7881959c2ac7699b9b35b0f04b#diff-f2fc11abc651cc0b4e99643c85f2a5f6 as well as #559 for more detail.
Closes #632
|
|
|
|
| |
Closes #629
|
|
|
|
| |
Closes #636
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To decom a node, one normally inserts {"decom":true} into that node's
document via the admin /nodes endpoint. However, it's easy to
accidentally insert {"decom":"true"} instead, in which case the
current mem3 allowed_nodes logic will include that node as allowed,
which is probably not what was intended, and ultimately result in "500
badard" errors sent to the client.
This changes the allowed_nodes algorithm to also accept {"decom":"true"}
to decom a node.
Thanks to Nick Vatamaniuc for discovering this shortcoming.
|
|\
| |
| | |
Update CONTRIBUTING.md to reflect monorepo
|
|/
|
|
| |
Also, there was a typo in the gitbox URL.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows developers to run eunit in a loop until a test crashes. This
can be helpful for fixing flaky tests that are failing due to timing
related issues. For instance:
make soak-eunit apps=ddoc_cache suites=ddoc_cache_lru_test
This command would run that specific test module repeatedly until it hit
a timing condition that caused a failure. And yes, I used this change to
fix that failure. :D
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously there was a race between reporting the source update sequence
between the the workers and the changes readers. Each one used separate
incrementing timestamp sequences.
In some cases that lead to pending changes being stuck. For example, if changes
reader reported the highest sequence with timestamp 10000, then later workers
reported it with sequences 5000, 5001, 5002, then all those reports would be
ignored and users would see an always lagging pending changes value reported
with timestamp 1000.
The fix is to thread the last_sequence update through the changes queue to
the changes manager, so only its timestamp sequence will be used. This removes
the race condition.
|
|\
| |
| | |
Fix compaction daemon tests
|
| |
| |
| |
| |
| |
| |
| |
| | |
View compacting process can be just a bit
slow on exit after swap_compacted call.
This leads to the test failure, because
compacting process holding on db monitor
|
| | |
|
|/
|
|
|
|
|
|
|
|
| |
With meck unload set during per suit
teardown all the mocked modules crashing
with "not_mocked" error on attempt
to stop couch in the final cleanup.
This fix moves load and unload meck
modules into global setup and cleanup
|
|
|
|
|
|
| |
Adds X-Frame-Options support to help protect against clickjacking.
X-Frame-Options is configurable via the config and allows for DENY,
SAMEORIGIN and ALLOW-FROM
|
|\
| |
| |
| | |
COUCHDB-3358
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When indexing a set of fields for text search, we also create a special
field called $fieldnames. It contains values for all the fields that
need to be indexed. In order to do that, we need a unique list of the
form [[<<"$fieldnames">>, Name, [] | Rest]. The old code would add an
element to the list, and then check for membership via lists:member/2.
This is inefficient. Some documents can contain a large number of
fields, so we will use gb_sets to create a unique set of fields, and
then extract out the field names.
COUCHDB-3358
|
|\ \
| | |
| | | |
Wait for listener's exit during restart test
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
To test a config listener's restart we are
deleting event handler in config_event
and then immediately checking event manager.
This creates race when we can be a slightly
early and catch old handler yet to be
removed or slightly late and get
new handler that already been installed.
This patch addresses this by waiting for
the old listener to quit and then waiting
for a new handler to be installed.
|
|\ \
| | |
| | | |
Fix race in couchdb_views_tests
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There are a race condition in `restore_backup_db_file`
function between couch_server eviction of an old
db updater and a test quering view on restored db file.
The query in test can get old record for the updater
and then crash with `noproc` exception.
This change makes `restore_backup_db_file` to wait
until start of the new db updater.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently we return a 500 and something like
{"error":"{not_found,missing}","reason":"{1,<<\"000\">>}"}
when an attempt is made to put an attachment document with a
non-existent revision.
This changes the behavior to return a 409 and
{"error":"not_found","reason":"missing_rev"}"
|
| | |
|