summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add custodian and recon depscloudant/weatherreportJay Doane2020-12-132-1/+8
|
* Include weatherreport dependencyJay Doane2020-12-132-3/+9
|
* Add missing default headers to responsesBessenyei Balázs Donát2020-11-244-3/+28
|
* Merge pull request #3277 from cloudant/req_body-json-3.xiilyak2020-11-235-17/+19
|\ | | | | Req body json 3.x
| * 'req_body' suppose to hold JSON objILYA Khlopotov2020-11-231-8/+6
| |
| * Simplify using `req_body` for JSON requestsILYA Khlopotov2020-11-193-7/+8
| | | | | | | | | | | | | | | | Currently the EPI plugins have no easy way to modify body of the document in before request. There are complicated approaches via overiding compression header. This is due to the fact that `chttp:json_body/1` expects compressed body. We can rely on the fact that `MochiReq:recv_body/1` returns binary to allow passing of already parsed JSON terms (objects and lists).
| * Use `req_body` field if presentILYA Khlopotov2020-11-191-2/+5
|/ | | | | | | When we call `couch_httpd:json_body/1` we can have `req_body` already set. In this case we should return the field as is without any attempt to decompress or decode it. This PR brings the approach we use in `chttpd` into `couch_httpd`.
* Merge pull request #3271 from apache/couch_att_erroneous_md5_mismatchRobert Newson2020-11-161-6/+2
|\ | | | | Couch att erroneous md5 mismatch
| * Remove incorrect MD5 checkRobert Newson2020-11-161-6/+2
|/ | | | | | | | | | | If an attachment was stored uncompressed but later is replicated internally to a node that wants to compress it (based on content-type), couchdb compares the uncompressed md5 with the compressed md5 and fails. This breaks eventual consistency between replicas. This PR removes the unnecessary MD5 check that is, in these specific circumstances, always called with mismatched arguments.
* Merge pull request #3254 from apache/3.x-add-mango-operator-match-key-in-mapPeng Hui Jiang2020-11-102-0/+41
|\ | | | | added $keyMapMatch Mango operator
| * added $keyMapMatch Mango operatorMichal Borkowski2020-11-102-0/+41
|/
* Merge pull request #3255 from apache/3.x-reset-corrupt-view-index-2Peng Hui Jiang2020-11-101-0/+6
|\ | | | | Reset if we don't get a view header
| * Reset if we don't get a view header3.x-reset-corrupt-view-index-2Robert Newson2020-11-091-0/+6
|/ | | | | | | | I found a .view file with a db_header in production (cause unknown but I'm hoping it's manual intervention). This patch means we'll reset the index if we find something other than a view header when looking for one.
* Merge pull request #3253 from apache/check_local_dbsPeng Hui Jiang2020-11-091-4/+3
|\ | | | | fix check_local_dbs test
| * fix check_local_dbs testjiangph2020-11-091-4/+3
|/
* Merge pull request #3252 from apache/port-json-decode-2Peng Hui Jiang2020-11-092-2/+12
|\ | | | | Expose `couch_util:json_decode/2` to support jiffy options
| * Expose `couch_util:decode/2` to support jiffy optionsport-json-decode-2Jay Doane2020-11-082-2/+12
|/ | | | | | | | | It can be desirable in some cases for decoded JSON to e.g. return maps instead of the default data structure, which is not currently possible. This exposes a new function `couch_util:decode/2`, the second parameter being a list of options passed to `jiffy:decode/2`.
* Merge pull request #3250 from apache/3.x-re-monitor-compaction-pidPeng Hui Jiang2020-11-072-6/+34
|\ | | | | 3.x porting - add remonitor code to DOWN message (#3144)
| * fix race condition (#3150)3.x-re-monitor-compaction-pidTony Sun2020-11-072-1/+10
| | | | | | | | | | | | | | | | This fixes a94e693f32672e4613bce0d80d0b9660f85275ea because a race condition exisited where the 'DOWN' message could be received before the compactor pid is spawned. Adding a synchronous call to get the compactor pid guarantees that the couch_db_updater process handling of finish_compaction has occurred.
| * add remonitor code to DOWN message (#3144)Tony Sun2020-11-071-6/+25
|/ | | | | | | | | | | | | | | | | | | | | | | | | | Smoosh monitors the compactor pid to determine when the compaction jobs finishes, and uses this for its idea of concurrency. However, this isn't accurate in the case where the compaction job has to re-spawn to catch up on intervening changes since the same logical compaction job continues with another pid and smoosh is not aware. In such cases, a smoosh channel with concurrency one can start arbitrarily many additional database compaction jobs. To solve this problem, we added a check to see if a compaction PID exists for a db in `start_compact`. But wee need to add another check because this check is only for shard that comes off the queue. So the following can still occur: 1. Enqueue a bunch of stuff into channel with concurrency 1 2. Begin highest priority job, Shard1, in channel 3. Compaction finishes, discovers compaction file is behind main file 4. Smoosh-monitored PID for Shard1 exits, a new one starts to finish the job 5. Smoosh receives the 'DOWN' message, begins the next highest priority job, Shard2 6. Channel concurrency is now 2, not 1 This change adds another check into the 'DOWN' message so that it checks for that specific shard. If the compaction PID exists then it means a new process was spawned and we just monitor that one and add it back to the queue. The length of the queue does not change and therefore we won’t spawn new compaction jobs.
* Merge pull request #3249 from apache/changes_filter_all_docs_oom_3.xRobert Newson2020-11-062-1/+68
|\ | | | | Retry filter_docs sequentially if the patch exceeds couchjs stack
| * Add test for splitting filter batchesPaul J. Davis2020-11-061-0/+55
| |
| * Retry filter_docs sequentially if the patch exceeds couchjs stackchanges_filter_all_docs_oom_3.xRobert Newson2020-11-051-1/+13
|/ | | | | | | | | | | | | | A document with lots of conflicts can blow up couchjs if the user calls _changes with a javascript filter and with `style=all_docs` as this option causes up to fetch all the conflicts. All leaf revisions of the document are then passed in a single call to ddoc_prompt, which can fail if there's a lot of them. In that event, we simply try them sequentially and assemble the response from each call. Should be backported to 3.x
* Jenkins: do not alwaysPull true (#3233)Joan Touzet2020-10-292-14/+0
|
* Fix apache/couchdb#1988 - Validate attachment namesJuanjo Rodriguez2020-10-222-0/+16
|
* Fix boolean POST to view-like endpointsBessenyei Balázs Donát2020-10-133-4/+34
|
* Properly combine base and extra headers when making replicator requestsNick Vatamaniuc2020-10-121-2/+26
| | | | | | | | | | | | Previously we subtly relied on one set of headers being sorted, then sorted the other set of headers, and ran `lists:ukeymerge/3`. That function, however, needs both arguments to be sorted in order for it to work as expected. If one argument wasn't sorted we could get duplicate headers easily, which is what was observed in testing. A better fix than just sorting both sets of keys, is to use an actual header processing library to combine them so we can account for case insensitivity as well.
* minor INSTALL.Unix.md patches (#2536) (#3207)Joan Touzet2020-10-091-20/+22
|
* Remove JS tests + support for harness (#3197) (#3203)Joan Touzet2020-10-07141-18463/+30
|
* Remove javascript tests from main build processJuanjo Rodriguez2020-10-072-2/+0
|
* port users_db_security tests to elixirJuanjo Rodriguez2020-10-074-7/+540
|
* simplify max_document_size commentRobert Newson2020-10-061-4/+2
|
* Complete the port of security_validation tests to ElixirJuanjo Rodriguez2020-10-012-132/+118
|
* Port show_documents and list_views to ElixirJuanjo Rodriguez2020-10-015-4/+1033
|
* port rewrite and rewrite_js tests into elixirJuanjo Rodriguez2020-10-017-116/+691
|
* Preserve query string rewrite when the request contains a bodyJuanjo Rodriguez2020-10-012-1/+18
|
* Port view_conflicts.js, view_errors.js and view_include_docs.js into elixir·Juanjo Rodriguez2020-09-247-3/+643
|
* Update Makefile.win to Include locad configs and clean configs in devcleanJuanjo Rodriguez2020-09-242-2/+7
|
* Workaround dirty schedulers in run_queue stats (#3161)Russell Branca2020-09-231-2/+15
|
* feat(auth): Allow a custom JWT claim for roles (#3166)Robert Newson2020-09-212-1/+2
| | | Co-authored-by: mauroporras <mauroporrasc@gmail.com>
* allow configurability of JWT claims that require a value (#3165)Robert Newson2020-09-214-6/+96
| | | | | | e.g; [jwt] required_claims = {iss, "https://example.com/issuer"}
* Prep for 3.1.1-RC2 (#3148) (#3152)Joan Touzet2020-09-151-44/+48
|
* Prep for 3.1.1-RC2 (#3148)3.1.1-RC23.1.1Joan Touzet2020-09-112-1/+2
|
* Fix buffer_response=true (#3145) (#3147)Robert Newson2020-09-102-10/+14
| | | We need to call StartFun as it might add headers, etc.
* bump version to 3.1.1 (#3143)3.1.1-RC1Joan Touzet2020-09-102-2/+2
|
* Bump fauxton, docs for 3.1.1 release (#3122)Joan Touzet2020-09-101-2/+2
|
* Handle malformed URLs when stripping URL creds in couch_replicatorNick Vatamaniuc2020-09-091-2/+26
| | | | | | Previously there was an error thrown which prevented emitting _scheduler/docs responses. Instead of throwing an error, return `null` if the URL cannot be parsed.
* Merge pull request #3132 from apache/delay_until_end_3.xRobert Newson2020-09-073-9/+125
|\ | | | | Add option to delay responses until the end
| * Add option to delay responses until the enddelay_until_end_3.xRobert Newson2020-09-073-9/+125
|/ | | | | | | | | | | When set, every response is sent once fully generated on the server side. This increases memory usage on the nodes but simplifies error handling for the client as it eliminates the possibility that the response will be deliberately terminated midway through due to a timeout. The config value can be changed at runtime without impacting any in-flight responses.
* Make COPY doc return only one "ok" (#3130)Bessenyei Balázs Donát2020-09-042-1/+13
|