| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Also remove the tests to detect that background index building didn't
happen, cause it does now.
|
|\
| |
| | |
Update Fauxton to 1.2.2
|
|/
|
| |
Explicitly installs peer dependencies, the lack of which were causing the webpack bundling to fail.
|
|
|
|
|
|
| |
We don't support "local" replications in 3.x so there is not need to waste
resources creating this db on every node, and then continuously listening for
replication doc updates from it.
|
|\
| |
| | |
Update Fauxton to 1.2.1
|
|/
|
| |
Fauxton 1.2.0 failed to compile on some platforms. 1.2.1 is a patch release which updates the webpack dependency to address this.
|
|\
| |
| | |
Remove "externals"
|
| |\
| |/
|/| |
|
| | |
|
|/
|
|
|
|
|
| |
Remove all the plumbing that enabled `_external/` request handling,
leaving only the functions necessary for `list` and `show`.
closes https://github.com/apache/couchdb/issues/2166
|
|\
| |
| | |
Return headers from _changes feed when there are no changes
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem
-------
The request of continious _changes feed doesn't return until either:
- new change is made to the database
- the heartbeat interval is reached
This causes clients to block on subscription call.
Solution
--------
Introduce a counter to account for number of chunks sent.
Send '\n' exactly once on `waiting_for_updates` when `chunks_sent`
is still 0.
The implementation is suggested by @davisp [here](https://github.com/apache/couchdb/issues/985#issuecomment-537150907).
There is only one difference from his proposal which is:
```
diff --git a/src/chttpd/src/chttpd_db.erl b/src/chttpd/src/chttpd_db.erl
index aba1bd22f..9cd6944d2 100644
--- a/src/chttpd/src/chttpd_db.erl
+++ b/src/chttpd/src/chttpd_db.erl
@@ -215,7 +215,7 @@ changes_callback(waiting_for_updates, #cacc{buffer = []} = Acc) ->
true ->
{ok, Acc};
false ->
- {ok, Resp1} = chttpd:send_delayed_chunk(Resp, []),
+ {ok, Resp1} = chttpd:send_delayed_chunk(Resp, <<"\n">>),
{ok, Acc#cacc{mochi = Resp1, chunks_sent = 1}}
end;
changes_callback(waiting_for_updates, Acc) ->
```
|
|\
| |
| | |
Update default config settings
|
| |\
| |/
|/| |
|
|\ \
| | |
| | | |
Ping clouseau directly
|
| | |
| | |
| | |
| | |
| | | |
This change eliminates IOQ from the test path for clouseau
connectivity.
|
| |/
|/|
| |
| |
| |
| |
| | |
q=2
max_document_size = 8000000 ; 8 MB.
https://github.com/apache/couchdb/issues/2115
|
|\ \
| |/
| | |
Update fauxton to version 1.1.20
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This effectively removes a lot couch_db:ensure_full_commit/1,2 calls.
Low level fsync configuration options are also removed as it might be tempting
to start using those instead of delayed commits, however unlike delayed
commits, changing those default could lead to data corruption.
`/_ensure_full_commit` HTTP API was left as is since replicator from older
versions of CouchDB would call that, it just returns the start time as if
ensure_commit function was called.
Issue: https://github.com/apache/couchdb/issues/2165
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Users should send requests with multiple queries to the new endpoint:
/db/_design/{ddoc}/_view/{view}/queries
Closes #2168
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|