summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix some testschewbranca-ioq-experimentsRussell Branca2021-08-237-24/+86
|
* Rework cache and IOQ2 pid per couch_fileRussell Branca2021-08-173-53/+65
|
* Add couch_file cacheRussell Branca2021-08-163-2/+48
|
* Fix response code for nonexistent attachmentncshaw2021-07-192-8/+27
|
* feat: show erlang and spidermonkey version in /_node/_local/_versionsJan Lehnardt2021-07-134-3/+17
| | | | | | The endpoint is admin-only. Closes #3298
* fix badmatch when fetching latest revJan Lehnardt2021-07-121-1/+7
| | | | Closes #3362
* Port prometheus 3.x (#3506)Tony Sun2021-07-0917-3/+781
| | | | | | | | | | | | | | | | | | | | | * Add new app couch_prometheus This will be a new app add a _prometheus endpoint which will return metrics information that adheres to the format described at https://prometheus.io/. Initial implementation of new _prometheus endpoint. A gen_server waits for scraping calls while polling couch_stats:fetch and other system info. The return value is constructed to adhere to prometheus format and returned as text/plain. The format code was originally written by @davisp. We add an option to spawn a new mochiweb_http server to allow for an additional port for scraping which does not require authentication. The default ports are 17986, 27986, 37986 across 3 nodes. make release Co-authored-by: Joan Touzet <wohali@users.noreply.github.com>
* 3.x build on ppc64leNick Vatamaniuc2021-07-091-47/+89
| | | | | | | | | | | Bring back ppc64le builds s390x seems to fail, possibly related to mozjs60 so skip it for now. Also FoundationDB doesn't build on either architecture. https://github.com/apache/couchdb/issues/3660 https://github.com/apache/couchdb/issues/3454#issuecomment-876738187
* Fix partitioned db shard recreation logic (#3633)Russell Branca2021-07-087-21/+203
|
* Use correct socks5 proxy ibrowse optionsJay Doane2021-06-241-3/+34
| | | | | | | | With the move from using a forked ibrowse to upstream [1], the ibrowse options for socks5 proxy settings all changed to a `socks5_` prefix. [1] https://github.com/apache/couchdb/pull/3551
* Merge pull request #3609 from jiahuili430/normalise-config-optionsiilyak2021-06-2129-209/+172
|\ | | | | Normalize some config options
| * normalize some config optionsjiahuili2021-06-2129-209/+172
|/
* Fix custodian default system dbsJay Doane2021-06-153-3/+3
| | | | | | | | | These system db defaults were left unchanged when this code was imported from Cloudant. This updates them to CouchDB defaults, by using existing functions in the appropriate application and module. h/t @chewbranca for discovering the issue, and also suggesting a better way to obtain these config values.
* Improve robustness of chttpd_util_testJay Doane2021-06-101-0/+18
| | | | | | | | | | In their current form, some of these tests rely on configuration props set with specific values in rel/overlay/etc/default.ini, which makes them prone to breakage when those values change, or when tests run in non-default configuration. This change deletes all config settings in the relevant sections under test, and then adds those under test back explicitly.
* Bump ibrowse to 4.4.2-5Nick Vatamaniuc2021-06-081-2/+2
| | | | | | | | | Previously, in 4.4.2-4 ibrowse upstream rebase also included the commit which unconditionally unquoted userinfo credentials. Since we know have a better way of handing basic auth creds bump ibrowse with a rebase which doesn't include that commit. This is the 3.x port of https://github.com/apache/couchdb/pull/3612
* Bump ibrowse to 4.4.2-4 and mochiweb to v2.21.0Nick Vatamaniuc2021-06-071-3/+3
| | | | | | | * mochiweb : upgrade crypto functions to support OTP 23+ * ibrowse : update time functions and fix flaky unit test Backport of https://github.com/apache/couchdb/pull/3610
* Erlang 19 is not supported for 3.xNick Vatamaniuc2021-06-051-1/+1
| | | | | | | | | It doesn't really work as we have functionality relying on 20.0+ features. One particular instance is in [1]. Issue: https://github.com/apache/couchdb/issues/3571 [1] https://github.com/apache/couchdb/blob/ce596c65d9d7f0bc5d9937bcaf6253b343015690/src/couch/src/couch_emsort.erl#L363-L366
* Bump ibrowse to 4.4.2-3Nick Vatamaniuc2021-06-041-1/+1
| | | | This is a backport of https://github.com/apache/couchdb/commit/e349128d21212e9ab9ca35e8a72c581b9b77ebb1 from main.
* Improve smoosh defaults for slack channel (#3600)Joan Touzet2021-06-032-7/+7
|
* Improve basic auth credentials handling in replicatorNick Vatamaniuc2021-06-017-225/+353
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, there were two ways to pass in basic auth credentials for endpoints -- using URL's userinfo part and encoding the them in an `"Authorization": "basic ..."` header. Neither one is ideal for these reasons: * Passwords in userinfo doesn't allow using ":", "@" and other characters. However, even after switching to always unquoting them like we did recently [1], would break authentication for usernames or passwords previously containing "+" or "%HH" patterns, as "+" might now be decoded to a " ". * Base64 encoded headers need an extra step to encode them. Also, quite often these encoded headers are confused as being "encrypted" and shared in a clear channel. To improve this, revert the recent commit to unquote URL userinfo parts to restore backwards compatibility, and introduce a way to pass in basic auth credentials in the "auth" object. The "auth" object was already added a while back to allow authentication plugins to store their credentials in it. The format is: ``` "source": { "url": "https://host/db", "auth": { "basic": { "username":"myuser", "password":"mypassword" } } } ``` {"auth" : "basic" : {...}} object is checked first, and if credentials are provided, they will be used. If they are not then userinfo and basic auth header will be parsed. Internally, there was a good amount duplication related to parsing credentials from userinfo and headers in replication ID generation logic and in the auth session plugin. As a cleanup, consolidate that logic in the `couch_replicator_utils` module. [1] https://github.com/apache/couchdb/commit/f672b911db19981a81d7fc6ce8ac33b150234fd7
* move couch_httpd_auth options to chttpd_auth 3.xJiahui Li2021-05-2714-79/+169
|
* Bump hyper dependency to 2.2.0-7Nick Vatamaniuc2021-05-261-1/+1
| | | | | | Upgrade random -> rand https://github.com/apache/couchdb-hyper/releases/tag/CouchDB-2.2.0-7
* Moved some config options from httpd to chttpdJiahui Li2021-05-2423-98/+267
|
* Erlang 24 support for 3.x branchNick Vatamaniuc2021-05-197-13/+68
| | | | | | | | | The main fix is to switch crypto functions to use the new versions for 22+ while keeping Erlang 20 still working. ``` crypto:hmac(Alg, Key, Message) -> crypto:mac(hmac, Alg, Key, Message) ```
* Bump ibrowse to 4.4.2 + couchdb patchesNick Vatamaniuc2021-05-102-2/+5
| | | | | | | Set the `worker_trap_exits = false` setting to ensure our replication worker pool properly cleans up worker processes. Ref: https://github.com/apache/couchdb/pull/3208
* Add offheap MQ support for dreyfus_index_manager (#3545)Russell Branca2021-05-041-0/+1
|
* Fix bug in Replicator authentication for password contains @Jiahui Li2021-05-041-1/+53
|
* Reformat build-aux/logfile-uploader.py (#3542)Bessenyei Balázs Donát2021-05-041-3/+3
|
* Use correct args in get_doc_infoJay Doane2021-04-201-1/+1
| | | | | `fabric.get_doc_info/3` requires three arguments, but this line was only using one.
* Merge pull request #3312 from apache/weatherreportJay Doane2021-04-2035-1/+3326
|\ | | | | Import weatherreport
| * Build and escriptize weatherreportweatherreportJay Doane2021-04-204-2/+23
| |
| * Crash if config app fails to startJay Doane2021-04-201-1/+1
| |
| * Add getopt copyright to NOTICEJay Doane2021-04-201-0/+4
| |
| * Update weatherreport documentationJay Doane2021-04-202-3/+16
| |
| * Delete obsolete weatherreport files and documentationJay Doane2021-04-205-149/+0
| |
| * Change header preamble to "derived from riaknostic"Jay Doane2021-04-2011-11/+11
| |
| * Change search check failure from error to warningJay Doane2021-04-201-1/+2
| | | | | | | | | | In default CouchDB, search is disabled by default, so a failure to connect to clouseau should only be a warning.
| * Support default IOQ in weatherreportJay Doane2021-04-202-1/+28
| | | | | | | | | | weatherreport previously relied on Cloudant's IOQ implementation. This adds support for the default IOQ so that it works with either.
| * Port custom recon process call checksJay Doane2021-04-201-2/+57
| | | | | | | | Port fork of custom `recon` functions for checking process calls.
| * Merge remote-tracking branch 'weatherreport/riaknostic-squash' into ↵Jay Doane2021-04-2034-0/+3353
| |\ |/ / | | | | weatherreport
| * Change s/cloudant/couchdb/g for maintenance_modeILYA Khlopotov2021-04-191-1/+1
| | | | | | | | BugzID: 45855
| * Downgrade process call count to noticeMike Wallace2021-04-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit downgrades messages about process call counts to notice level. The previous level of warning was inappropriate for many processes as it really just indicated normal operation of the system. Until this check is made a bit smarter, with custom thresholds per MFA, we will log at nothing more severe than notice so that we don't confuse operators into thinking something is wrong. BugzID: 37593
| * Fix description of process_memory checkMike Wallace2021-04-191-1/+1
| |
| * Check mean node statistics over one secondRiccardo Brognara2021-04-191-0/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | Check the absolute statistics obtained by recon:node_stats/4 over a one second period. The values are sampled ten times and the mean is returned. For run_queue and process_count the mean is compared to hard-coded thresholds which determine whether a warning or info message is returned. For all other statistics an info message is always returned. BugzID: 32877
| * Check number of pending internal replication jobsRiccardo Brognara2021-04-191-0/+57
| | | | | | | | | | | | | | | | | | | | | | This commit adds a check for the number of pending internal replication jobs on a node. A large number of pending internal replication jobs indicates that internal replication is falling behind. A warning message is returned if the number of jobs exceeds a hard-coded threshold, otherwise an info message is returned. BugzID: 32872
| * Handle conflicted shard mapsMike Wallace2021-04-191-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | Custodian will output a message if there are one or more conflicting revisions for a shard map. Previously weatherreport_check_custodian failed to match that message which caused the check to fail. This commit adds new function clauses to report_to_message/1 and format/1 so that the conflict messages are output to the console at the warning log level. BugzID: 34157
| * there is no appRobert Newson2021-04-191-2/+1
| |
| * Don't include node name in diagnostic messagesMike Wallace2021-04-192-17/+14
| | | | | | | | | | | | Unless it is explicitly required for a check, avoid returning the node name in diagnostic messages. The node name is added by the logging code so including it in the messages is not necessary.
| * Remove redundant rpc callsMike Wallace2021-04-198-25/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The initial design of Riaknostic (and hence WeatherReport) was that checks ran in the script and made RPC calls to the local cluster node when needed. Due to a requirement to allow checks to run on multiple cluster nodes without guarantees of SSH connectivity, the design has changed such that each check is now run entirely on the cluster node. This means it is no longer necessary to use weatherreport_node:local_command/3 to interact with the cluster, the calls can just be made directly. This commit removes the redundant calls to weatherreport_node:local_command/3 which makes the intent of the code a bit clearer. BugzID: 34016
| * Remove escriptize from all targetMike Wallace2021-04-191-1/+1
| |