summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix bash-ism in EUnit retry logicfix-bashism-in-eunit-retryNick Vatamaniuc2019-08-061-1/+1
| | | | Bash has `let` but other shells might not have it.
* Switch to only using elixir replication integration testNick Vatamaniuc2019-08-012-1922/+0
| | | | | | | And remove the js version. Elixir test has been running decently on Travis from what I observed. However, it was disabled on jenkins runs. With a recent hardware upgrade, perhaps there is chance this test will start passing there too.
* Remove local replication endpoints in CouchDB 3.xNick Vatamaniuc2019-07-3122-456/+136
| | | | | | | | | | | | | | | `local` replication endpoints do something completely unexpected from a user's point of view -- they replicate to and from node local databases on a random node. The only way this worked correctly was if someone used the backend port (:5986) with a single node database. However, that port is getting closed for 3.x release as well, so it makes even less sense to keep this functionality around. For more discussion and voting results see ML list: https://lists.apache.org/thread.html/ddcd9db93cee363db7da571f5cbc7f2bd24b881a34e1ef734d6a0a1c@%3Cdev.couchdb.apache.org%3E The `_replicate` HTTP "hack" was left as is, since it does work more or less, However it is inconsistent with what _replicator docs do so we should probably deprecated it and remove it in 4.x.
* Fix mem3_sync_event_listener EUnit testNick Vatamaniuc2019-07-301-20/+8
| | | | | Fix a race condition in state matching, also parameterize the state field in wait_state.
* Retry EUnit tests on failureNick Vatamaniuc2019-07-291-2/+12
| | | | | | | Whole app is retried 2 extra times if it fails. Added to *nix Makefile only for now. May not be needed for Windows as this is for CI flakiness mostly.
* Merge pull request #2039 from cloudant/exunit-simplifiediilyak2019-07-29205-79/+887
|\ | | | | Exunit simplified
| * Update .travis.ymlILYA Khlopotov2019-07-291-5/+0
| |
| * Unify runners for unit and integration testsILYA Khlopotov2019-07-2912-93/+67
| |
| * Add chained setupsILYA Khlopotov2019-07-2910-0/+685
| |
| * Move eunit tests into test/eunit directoryILYA Khlopotov2019-07-29175-3/+3
| |
| * Minimal ExUnit setupILYA Khlopotov2019-07-2912-3/+157
| |
| * Fix credo complains for dreyfusILYA Khlopotov2019-07-291-2/+2
|/
* Fix EUnit timeouts (#2087)Adam Kocoloski2019-07-286-104/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Proactively increase timeout for PBKDF2 test This test was taking 134s in a recent run, which is uncomfortably close to the threshold. * Extend timeouts for all reshard API tests We're observing timeouts on various tests in this suite so let's keep it consistent and increase timeouts across the board. * Bump default timeout for all mem3_reshard tests A couple of these tests were exceeding the default timeout under normal circumstances, but many of them do a significant amount of work, so for simplicity we set a module-wide timeout and apply it consistently throughout. * Modernize the sync_security test setup/teardown This test actually doesn't do much real work, but I think what was happening is that the setup and teardown time was being charged to the test itself. I've refactored it to use a more modern scaffolding following some of our more recent additions to the test suite, but have left the timeout at the default to test this hypothesis. * Increase timeouts on more heavyweight mem3 tests * Extend timeouts for replication tests
* Fix flaky mem3_sync_event_listener EUnit testNick Vatamaniuc2019-07-281-8/+31
| | | | | | | | Config setting was asynchronous and the waiting function was not waiting for the actual state value to change just that the state function was returning. The fix is to wait for the config value to propagate to the state.
* Increase timeouts on two slow btree testsAdam Kocoloski2019-07-281-2/+7
| | | | | | These two tests are reliably timing out on ARM hardware in Jenkins. They do a lot of individual btree operations so this is not entirely surprising. Appropriate course of action here is to raise the timeout.
* Make sure that fsync errors are raisedPaul J. Davis2019-07-222-3/+59
| | | | | | | | | This changes `couch_file` to ensure that errors are raised when a call to `fsync` fails. It will also stop the couch_file process to ensure that anything handling a failed `fsync` won't attempt to retry the operation and experience issues discovered by Postgres [1]. [1] http://danluu.com/fsyncgate/
* Add missing purge settings to default.iniNick Vatamaniuc2019-07-111-0/+11
|
* Fix max_document_id_length value in default.iniNick Vatamaniuc2019-07-111-1/+1
| | | | | | The code has "infinity" as the default value and not 0 See src/couch_replicator/src/couch_replicator_changes_reader.erl
* Add erlang 22 supportNick Vatamaniuc2019-07-102-3/+6
| | | | | | | | | | | Bumped elixir version to 1.7.4 as 1.6.6 wasn't built with Erlang 22 support. Also moving straight to 22.0.5 since 22.0 in travis crashed with a segmentation fault. Some of the release comments in the point release mention VM crashes, so it seems to check out. Fixes https://github.com/apache/couchdb/issues/2069
* Merge pull request #2062 from cloudant/update-ioq-2.1.2iilyak2019-07-031-1/+1
|\ | | | | Update ioq to 2.1.2
| * Update ioq to 2.1.2ILYA Khlopotov2019-06-271-1/+1
|/ | | | * Fix the case when we call log10 with 0
* Merge pull request #2037 from kocolosk/dreyfus-by-defaultAdam Kocoloski2019-06-2145-5/+4995
|\ | | | | Add "Dreyfus" (Erlang side of Search) to CouchDB
| * Merge branch 'master' into dreyfus-by-defaultAdam Kocoloski2019-06-201-3/+4
| |\ | |/ |/|
* | Improve PR template with @kocolosk feedbackJoan Touzet2019-06-201-3/+4
| |
| * Document config settings related to search systemAdam Kocoloski2019-06-201-0/+29
| |
| * Further improve detection of Search systemAdam Kocoloski2019-06-201-5/+12
| | | | | | | | | | | | The clouseau_rpc:version() call actually takes a few milliseconds to complete, so instead we first check for a hidden clouseau node already connected to our node. If we don't find it, we do the version() RPC.
| * Improve error message on Clouseau connection failAdam Kocoloski2019-06-181-6/+13
| |
| * Improve detection of Search subsystemAdam Kocoloski2019-06-143-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we had been using module_loaded(dreyfus_index) as a check for the presence of the Search system. There are two issues with this approach going forward: 1. Dreyfus is going to be included in every build 2. An Erlang release loads modules lazily and so this check could accidentally fail even on a Search-enabled system. This patch changes the check to one that makes an RPC request to the Clouseau (Java) subsystem. This should be a low-cost operation, but I haven't benchmarked it.
| * Merge branch 'master' into dreyfus-by-defaultAdam Kocoloski2019-06-141-3/+31
| |\ | |/ |/|
* | Make mem3_rep:go work when target shards are not yet present in shard mapNick Vatamaniuc2019-06-121-3/+31
| | | | | | | | | | Before shard splitting it was possible to replicate shards even if they were not in the shard map. This commit brings back that behavior.
| * Add Dreyfus to Erlang releaseAdam Kocoloski2019-05-253-0/+4
| |
| * Ensure Dreyfus JS code is included in buildAdam Kocoloski2019-05-252-0/+4
| |
| * Add dreyfus.js from cloudant/couchdb@c323f1943Adam Kocoloski2019-05-251-0/+62
| |
| * Add 'src/dreyfus/' from commit '80e3cd8111bda643686d9165ea6afa99d0d33cd4'Adam Kocoloski2019-05-2536-0/+4868
| |\ |/ / | | | | | | | | git-subtree-dir: src/dreyfus git-subtree-mainline: 57bf82e5cc3c3ab55ad6c3e46ea2c666ac2711cc git-subtree-split: 80e3cd8111bda643686d9165ea6afa99d0d33cd4
| * Address EPI's startup use of dreyfus_configAdam Kocoloski2019-05-211-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a lazy workaround to address a tricky interdependency in the application startup order. Dreyfus depends on the config application, but the plugin engine makes a call to dreyfus_config:data(), which relies on the config app, before the dreyfus app -- or the config app -- is started. The couch_epi module does not add a dependency on config so if couch_epi happens to start before config the whole VM can crash. The dreyfus_epi module configures the plugin interface to re-load the configuration data once a second, so ignoring the failure on startup only leaves a window of up to one second where any custom blacklist configuration for the dreyfus app is not loaded.
| * Merge pull request #47 from cloudant-labs/adjust-io_queue-searchPeng Hui Jiang2019-05-141-0/+6
| |\ | | | | | | adjust metric for io_queue-search
| | * adjust metric for io_queue-searchjiangph2019-05-141-0/+6
| |/
| * Merge pull request #46 from cloudant-labs/use-dedicated-search-ioq-channelRussell Branca2019-04-183-4/+10
| |\ | | | | | | Use dedicated search IOQ channel for
| | * Add IOQ2 metric for search trafficRussell Branca2019-04-121-0/+6
| | |
| | * Use dedicated search IOQ channelRussell Branca2019-04-122-4/+4
| |/
| * Merge pull request #45 from cloudant-labs/add-pricing-for-pqgarren smith2019-03-281-0/+2
| |\ | | | | | | add stats for search
| | * add stats for searchGarren Smith2019-03-281-0/+2
| |/
| * Merge pull request #44 from ↵Rob Allen2019-03-071-7/+3
| |\ | | | | | | | | | | | | cloudant-labs/avoid-dreyfus-index-manager-for-disk-size Avoid dreyfus_index_manager for _search_disk_size.
| | * Avoid dreyfus_index_manager for _search_disk_size.Rob Allen2019-03-071-7/+3
| |/ | | | | | | | | | | | | | | | | Previously, all use of the _search_disk_size endpoint was serialised through gen_server calls in dreyfus_index_manager. However, the code executed in response to the public interface function used no state from the server, relying only on the passed arguments. Under load, this resulted in dreyfus_index_manager accumulating a long message queue, with the usual negative side effects.
| * Merge pull request #43 from cloudant-labs/116712-fix-deleteRobert Newson2019-02-171-1/+1
| |\ | | | | | | Always send a binary when calling clouseau_rpc:delete
| | * Always send a binary when calling clouseau_rpc:deleteRobert Newson2019-02-161-1/+1
| |/ | | | | | | BugzID: 116712
| * fix function_clause (#42)Tony Sun2019-02-131-1/+1
| | | | | | | | JsonBody was already a tuple list so putting in brackets made it a nested list which function claused on {K,V}. This fixes that
| * Fixed typoPaul J. Davis2019-02-071-1/+1
| |
| * Merge pull request #41 from cloudant-labs/partition-parametersPaul J. Davis2019-02-062-4/+34
| |\ | | | | | | Partition improvements
| | * Reject multiple conflicting values of `partition`Paul J. Davis2019-02-062-4/+34
| |/ | | | | | | | | | | | | | | If a user specifies different values for `partition` parameters in the query string or request body the behavior can be surprising on which one ends up being used. This change provides the user with an error that indicates the condition rather than leaving the user to figure out why queries are returning unexpected data.