| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
Users should send requests with multiple queries to the new endpoint:
/db/_design/{ddoc}/_view/{view}/queries
Closes #2168
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The reason we don't do this in config:features() directly is because
this one is a dynamic check for the presence of a connected clouseau
node. Calling `enable_feature` every time we conduct that check seemed
too heavyweight, but I didn't see a good opportunity to just call it
once and be confident that it would reliably advertise the feature.
The downside here is that CouchDB will not advertise the "search"
feature if Clouseau is disconnected for maintenance or whatever,
although technically it's accurate since search requests submitted
during that interval would fail.
Closes #2205
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Similar to 448be7996999a706464d8f7429a56dc9e9c87c3a (hello 0.10.1),
`timer:{send,apply}_interval()` will apply functions / send messages
for all intervals that match the time that a machine was in sleep /
hibernation mode that is common on desktop systems.
In a typical office scneario, a laptop system that sleeps over a
weekend , when woken up on a monday, issue thousands of function
calls, that together with other, unrelated wake-up activity, make
a machine top out its CPU for no good reason.
The change addresses this by instead of relying on an interval to
start a given task, on startup, start the task once after a timeout,
and then start a fresh timer after the task is done.
Other than the 0.10-era patch, this one does not account for a system
waking up before the timeout. I’m happy to add that behaviour, if a
reviewer insists on it.
As a result, no matter how long the sleep period is, we only run
the desired function _once_ after we wake up again. In the never-
sleep scenario, the existing behaviour is retained.
This might impact metrics that have a time component, but I think
that’s a fair compromise, so I didn’t investigate that further.
|
|
|
|
| |
These fields are all marked as deprecated in the current documentation
and they have more specific replacements in the `sizes` object.
|
|\
| |
| | |
Fix typo in couch_mrview comment
|
|/ |
|
|
|
|
|
|
|
|
|
| |
Allow a special field for plugin writers to stash endpoint credentials, which
gets the same treatment as headers and user:pass combinations for already
existing plugins (session, noop aka basic auth).
Instead of complicating the plugin API, use a simple convention of just calling
it "auth" for now.
|
|\
| |
| | |
Support `--extra_args` parameter in `dev/run`
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sometimes there is a need to specify additional arguments for the beam process we start from dev/run.
In particular the feature is handy for:
- changing emulator flags
- simulate OOM via available RAM restrictions
- enable module loading tracing
- configure number of schedulers
- modify applications configuration
- run customization script to add extra development deps (such as automatic code reload)
Historically developers had to edit dev/run to do it.
This PR adds an ability to specify additional arguments via `--extra_args` argument.
In order to run customization script create `customization.erl` which exports `start/0` and run it using:
```
dev/run --extra_args='-run customization'
```
|
|\
| |
| | |
do not cleanup ongoing compact files using fabric:cleanup_index_files/1
|
|/ |
|
| |
|
|\
| |
| | |
Skipping CompactTest due to compaction failure
|
|/ |
|
|\
| |
| | |
Fix badmatch in fabric_view_all_docs
|
|/
|
|
|
|
|
|
| |
In query for all_docs with passed keys array it is possible
for `doc_receive_loop/6` to timeout and trigger `badmatch` exception.
The fix changes code to to accept `timeout` as a possible response
and passes it to Callback to process.
|
|\
| |
| | |
Keep database property after overwriting shard map
|
|/ |
|
|\
| |
| | |
Send a 500, not a 400, for unknown search errors
|
|/
|
|
|
| |
We should only send a 400 Bad Request if there is genuinely something
wrong with the request, otherwise we mislead users and sysadmins.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the `_scheduler/docs` response is generated, the replication docs are
parsed and credentials are stripped by `couch_replicator:strip_url_creds/1`.
When local endpoint support was removed, that function didn't properly catch
the parsing error for local endpoints and as a result was error-ing out the
whole response.
The fix is to catch the error and return the endpoint as is. The catch is
specific to that error, so turned the long binary message into a shorter, but
hopefully still obvious atom.
`_scheduler/docs` response would look like:
```
{
"docs": [
{
"database": "_replicator",
"doc_id": "r",
"error_count": 1,
"id": null,
"info": "local_endpoints_not_supported",
"last_updated": "2019-08-20T16:09:53Z",
"source": "http://adm:*****@127.0.0.1:15984/s/",
"start_time": "2019-08-20T16:09:53Z",
"state": "failed",
"target": "t"
}
],
"offset": 0,
"total_rows": 1
}
```
Interestingly, there was already a test for this case, except it wasn't
included in the EUnit test suite list.
|
|\
| |
| | |
Update httpotion to 3.1.3
|
| |
| |
| |
| |
| |
| | |
This commits ports `couch.ex` related chages from
https://github.com/apache/couchdb/pull/2104 into the world where
we don't override `process_arguments/3`
|
|/
|
|
|
|
|
|
| |
There were couple of hacks in test/elixir/lib/couch.ex
We've got changes needed to remove them into httpotion 3.1.3.
The changes were introduced in:
- https://github.com/myfreeweb/httpotion/pull/118
- https://github.com/myfreeweb/httpotion/pull/130
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
More occasional flakiness on Jenkins.
|
|
|
|
|
|
| |
The last 9 tests take a few hundred milliseconds locally and flaked a
bit on Jenkins. For consistency's sake we bump the timeout from 5 to 60
seconds across the board.
|
|
|
|
| |
Jenkins flaked out on one of these today.
|
|
|
|
| |
We aren't building them anymore.
|
|
|
|
|
|
|
|
|
|
|
| |
Omitting COUCHDB_VERSION caused the EUnit build of the replicator to
have a corrupted User-Agent header. It tried to construct a version
using git, but when building from a release tarball there is no git
repo so the UA had a git error message in it. This error message
contained a newline, which plausibly confused some part of the HTTP
stack and caused replicator HTTP requests to hang.
Related to #2098.
|
|\
| |
| | |
Call :meck.unload() automatically after every test
|
|/ |
|
|\
| |
| | |
Do not fail 'dev/run' on connection close
|
|/
|
|
|
|
|
|
|
| |
Sometimes admin party mode causes the 'dev/run' to fail with
```
http.client.RemoteDisconnected: Remote end closed connection without response
```
This PR makes this use case more robust.
|
|\
| |
| | |
Refactor fabric:cleanup_index_files
|
|/
|
|
|
| |
Previous implementation assembled a regexp by concatenating active signatures.
The approach caused regexp to exceed system limit in the case of huge number of them.
|
|\
| |
| | |
Support map childspecs in couch_epi supervisor's children replacement
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, when total number of replication jobs exceed `MaxJobs`, if some
jobs crashed, additional jobs didn't start immediately to bring the running
total up to the `MaxJobs` limit. Then, during rescheduling, the `Running ==
MaxJobs, Pending > 0` guard would fail and jobs would not rotate. In other
words, if at least one job crashed, rotation didn't happen.
The fix is to simplify the rotation logic to handle the `Running < MaxJobs`
case. First, up to `Churn` number of jobs are stopped, then enough jobs are
started to reach the `MaxJobs` limit.
The rotation logic case handles the `start_pending_jobs/3` case so there is no
need to call that separately before rotation happens.
|
|\
| |
| | |
fixup for dreyfus_fabric_cleanup:go/1
|
|/ |
|
| |
|
|
|
|
|
|
|
|
|
| |
These are needed to avoid timeouts on ASF Jenkins build farm. The
httpotion client uses ibrowse underneath, and ibrowse has three
separate timeouts. We are configuring two of them here: the overall
request timeout, and one that detects inactivity on the connection.
We set them slightly differently just to be able to differentiate which
one fired from the logs.
|
|
|
|
|
| |
This improves reliability because that time isn't charged to the test,
and also speeds up the test.
|
|
|
|
|
| |
The "Should copy local docs after split in four" test was occasionally
timing out in CI.
|