| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This test case is failing for the same reason as the failures in #559,
namely a GET on a _show, a PUT to the _show's ddoc to change the _show
function, and a subsequent GET on the same _show that returns a result
that is seemingly outdated. Late ddoc_cache eviction is still the
problem; setting ddoc_cache max_objects to 0 ensures this test always
passes.
Based on the discussion in #559 I am deleting this test as well, direct
on master with approval from @janl and @davisp.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The full discussion is in #559, but here is a summary.
Through instrumentation of ddoc_cache and ets_lru I suspect that this is
caused by cache eviction happening after the second GET. While I didn't
instrument exactly where the GET occurs it's clear that it's fairly
late, certainly after the PUT 201 is returned, and likely after the
subsequent GET actually reads from ddoc_cache.
After applying a change to allow me to completely disable the ddoc_cache
(-ddoc_cache max_objects 0 in vm.args) I ran the test on a loop
overnight, and the test never failed (>1000 executions). Previously the
test would fail every 20-30 executions.
TL;DR: we can't guarantee immediate ddoc_cache eviction on a ddoc
update, even for a single .couch file on a single node. (For obvious
reasons we definitely can't guarantee this in a cluster configuration.)
I will document this as a backwards compatibility change in 2.0 and
forward with a separate checkin to couchdb-documentation.
Thanks to @rnewson @janl and @davisp for helping track this one down!
This checkin also includes an improvement to the output when a JS test
fails a notEquals assertion.
Closes #559
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
restartServer() is still erroring out sometimes in Travis/Jenkins. This
PR both bumps the timeout to 15s as well as changes the detection
mechanism for restart to look for the uptime in _system to reset to a
low number.
This PR also removes the eclipsed redundant restartServer() definition
in couch_test_runner.js.
Closes #553
|
|
|
|
|
|
|
|
|
|
|
| |
Before when a design doc is updated/deleted, only one couch_index
process was notified - the one which shard contained a design doc.
couch_index processes from other shards still continued to exist,
and indexing activities for these processes were still be going on.
The patch notifies couch_index_processes on all shards
COUCHDB-3400
|
| |
|
|\
| |
| |
| | |
COUCHDB-3417
|
| |
| |
| |
| |
| |
| |
| |
| | |
To predict future compaction results, we log pre-compaction and
post-compaction file sizes. These log results will be used as data
points for regression analysis.
COUCHDB-3417
|
| | |
|
|\ \
| | |
| | | |
Export test_request:request/5 function
|
|/ /
| |
| |
| |
| |
| | |
Currently it is impossible to pass authentication options to
test_request:request. This commit exports request/5 which accept options
argument.
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Send a better error when opening a db without authorisation
|
| | |
| | |
| | |
| | | |
COUCHDB-3426
|
|/ /
| |
| |
| | |
This option is no longer available.
|
| | |
|
|\ \
| | |
| | | |
Make sure we cache admin pass prior to test run
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
couch_server is responsible for calling hash_admin_passwords whenever
"admin" section of config changes. However as you can see it from
[here](https://github.com/apache/couchdb/blob/master/src/couch/src/couch_server.erl#L219)
the call is asynchronous. This means that our test cases might fail when
we try to using admin user while admin password is not yet hashed.
|
| | |
|
| |
| |
| |
| | |
That was the intent all along, just forgot to enable before the merge.
|
| |
| |
| |
| |
| |
| |
| |
| | |
If minimum checkpointed sequence is greater or equal to source db sequence,
do not start an internal replication task. The typical case is when checkpoint
sequence is equal to the db sequence. Previously replication task was started
always wrote a checkpoint document even if no database changes. This resulted
in a flurry of writes during cluster startup.
|
| |
| |
| |
| |
| |
| |
| | |
This version of rebar has an extra commit on 2.6.0 to properly skip
applications that make use of the .app.src.script construct. The benefit
to us is that couch_epi tests will not run when specifying an
apps=$appname variable to eunit.
|
| | |
|
| |
| |
| |
| |
| | |
This allows us to make some better assertions/logging when starting our
application list on what should and should not already be started.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Whait db close a little bit before failing test
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
Databases are closed asynchronously. However it was not accounted for in
the test case. This commit waits database to close before it makes a
decission to abort the test.
I.e. if test case detects that database is still opened after 1 second
it considers it as failure.
|
|\ \
| | |
| | | |
Filter out non replicator tasks in test case
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously the test relied in the assumption that there are no
couch_tasks are running concurrently. This commit fixes that assumption
by filtering out all non replication related tasks from the output of
couch_task_status:all().
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Recently couch_lru was changed to use ets tables.
During eprof profiling it showed improved performance however recently in a
larger test with more concurrent updates and 5000 max dbs open it showed a
significant degradation compared to the previous (gb_tree-based) version.
GH Issue #528
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit is intended to improve failure analysis in Travis and
Jenkins runs by uploading couch log files after failed test runs.
A new script has been added that, upon invocation from the top-level
directory, tars up all EUnit logfiles and the dev/logs/node1.log file.
It then constructs a document based on the running environment (Travis,
Jenkins, manual). The document is posted to a CouchDB instance running
on couchdb-vm.apache.org with credentials passed in the COUCHAUTH
environment variable.
The .travis.yml file has been updated to install the script's
prerequisites (python-requests) and with the secret credentials, and to
instruct travis to run the log uploader after any test failure. Similar
steps will be taken to reconfigure Jenkins after these changes are
merged to master.
The test/javascript/run harness had to be modified to terminate after
the first failure. This is because each new test wipes the logfile of
the previous run. All tests can still be run, regardless of failure, by
specifing the -a/--all flag, however it is expected that the reduction
in test suite execution time when a test fails will be appreciated by
many.
|