summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* use top bits of the IV as a nonce?aegis_3.x_nonceRobert Newson2022-05-091-17/+20
|
* performance boost and also hides the key from inspectionRobert Newson2022-05-061-21/+27
|
* encryption password from configRobert Newson2022-05-062-4/+25
|
* import https://github.com/whitelynx/erlang-pbkdf2/blob/master/src/pbkdf2.erlRobert Newson2022-05-062-119/+215
|
* canary value to detect encryptionRobert Newson2022-05-061-8/+16
|
* support unencrypted filesRobert Newson2022-05-061-1/+10
|
* encrypt the headers tooRobert Newson2022-05-061-24/+24
|
* demonstrate native encryptionRobert Newson2022-05-062-14/+216
| | | | | | | | | | | | | | | Key management is _not_ done and so this scheme is not secure. The AES_MASTER_KEY value should be retrieved interactively and need not be the same for different databases. Overwriting the first 40 bytes of the file with any other value renders the file unreadable. We use AES in Counter Mode, which ensures we can encrypt and decrypt any section of the file without padding or alignment. The ciphertext is the same length as the plaintext. This mode provides confidentiality but not authentication.
* use undefined for timed out responses (#3979)Tony Sun2022-05-024-5/+54
| | | | | | | | | | | * fix badargs for timed out responses Under heavy load, fabric_update_doc workers will return timeout via rexi. Therefore no reponses will be populate the response dictionary. This leads to badargs when we do dict:fetch for keys that do not exist. This fix corrects this behavior by ensuring that each document update must receive a response. If one document does not have a response, then the entire update returns a 500.
* Improve index building during shard splittingNick Vatamaniuc2022-04-284-73/+142
| | | | | | | | | | | | | | Previously we didn't check responses from get_state/2 or await/2 functions when building indices. If an index updater crashed, and the index never finished building, the get_state/2 call would simply return an error and the process would exit normally. Then, the shard splitting job would count that as a success and continue to make progress. To fix that, make sure to check the response to all the supported indexing types and wait until they return an `ok` result. Additionally, increase the index building resilience to allow for more retries on failure, and for configurable retries for individual index builders.
* Bump version to 3.2.2Nick Vatamaniuc2022-04-262-2/+2
|
* Fix undefined cookie in weatherreport_nodeNick Vatamaniuc2022-04-261-1/+7
| | | | | If the cookie is undefined then we should not set it so it can pick up the ~/.erlang.cookie if it is there.
* Bind locally by defaultRobert Newson2022-04-261-0/+3
|
* Remove the default "monster" cookieRobert Newson2022-04-265-9/+30
|
* Fix index creation with empty ddoc should return 400 (#3990)Jiahui Li2022-04-263-10/+16
| | | | | Creating an index with "ddoc":"" or "name":"" should return a 400 Bad Request. This fixes: https://github.com/apache/couchdb/issues/1472
* Merge pull request #4006 from lostnet/nose2Will Young2022-04-251-8/+1
|\ | | | | Remove CI support for Debian 9 (stretch)
| * Remove CI support for Debian 9 (stretch)Will Young2022-04-251-8/+1
| |
* | Merge pull request #4004 from lostnet/nose2Will Young2022-04-231-1/+1
|\ \ | |/ | | mango_tests: revert hypothesis back for python3.6 compat
| * mango_tests: revert hypothesis back to python3.6 compatWill Young2022-04-231-1/+1
| |
* | Merge pull request #3980 from lostnet/nose2Will Young2022-04-226-19/+12
|\ \ | |/ | | Window test suite difficulties (nose2, timestamps)
| * Merge branch '3.x' into nose2Will Young2022-04-2213-22/+53
| |\ | |/ |/|
* | Merge pull request #4000 from apache/dreyfus-to-sourceRobert Newson2022-04-206-9/+9
|\ \ | | | | | | Ensure Object.prototype.toSource is always available
| * | Ensure Object.prototype.toSource() is always availableRobert Newson2022-04-206-9/+9
|/ /
* | Merge pull request #3994 from apache/fix-is-compactingRobert Newson2022-04-151-1/+1
|\ \ | | | | | | Convert DbName to list before cons
| * | Convert DbName to list before consRobert Newson2022-04-151-1/+1
|/ /
* | Merge pull request #3993 from apache/jwtf-error-handlingRobert Newson2022-04-142-6/+6
|\ \ | | | | | | Cause a 400 Bad Request if decoding JWT token fails
| * | Cause a 400 Bad Request if decoding JWT token failsRobert Newson2022-04-142-6/+6
|/ /
* | Merge pull request #3992 from apache/improve_search_detectionRobert Newson2022-04-134-6/+37
|\ \ | | | | | | Search is available if it was ever available since start
| * | Search is available if it was ever available since startRobert Newson2022-04-134-6/+37
|/ / | | | | | | | | calling connected() every time causes spurious 503's when clouseau is temporarily unavailable, which is usually masked by retry logic.
| * Merge branch '3.x' into nose2Will Young2022-04-095-26/+85
| |\ | |/ |/|
* | Merge pull request #3982 from apache/do-not-git-ignore-ioqNick Vatamaniuc2022-04-031-1/+0
|\ \ | | | | | | Do not git ignore src/ioq subfolder
| * | Do not git ignore src/ioq subfolderNick Vatamaniuc2022-04-031-1/+0
|/ / | | | | | | | | We include ioq in the main repo currently so it doesn't make sense to ignore it.
* | Fix skip and limit parametersjiahuili2022-03-314-25/+85
| |
| * avoid timestamps in elixir-suite design docs (cleanup)Will2022-03-311-5/+1
| |
| * avoid timestamps in elixir-suite design docsWill Young2022-03-301-7/+1
| |
| * nose->nose2 deps upgrade for mango testsWill2022-03-305-8/+11
|/
* Implement configurable compaction log levelsJay Doane2022-03-297-18/+57
| | | | | Create new config options in `couchdb` and `smoosh` sections to enable finer control of compaction logging levels.
* Convert notice to warning for exceptionsJay Doane2022-03-292-2/+2
| | | | | These entries are logged because of exceptions, and so should be at least warning level.
* Handle `not_found` lookups removing ddoc cache keyJay Doane2022-03-291-10/+24
| | | | | | | | | | | | | For non-existent ddocs, a new ddoc_cache_entry is spawned for each call to ddoc_cache:open. Multiple calls to open the same non-existent ddoc will create multiple cache entries with the same Key but different PIDs. This can result in khash lookups returning `not_found` as in the error below: [error] 2021-12-10T02:25:21.622743Z node1@127.0.0.1 <0.18923.9> -------- gen_server ddoc_cache_lru terminated with reason: no match of right hand value not_found at ddoc_cache_lru:remove_key/2(line:308) <= ddoc_cache_lru:handle_info/2(line:219) <= gen_server:try_dispatch/4(line:637) <= gen_server:handle_msg/6(line:711) <= proc_lib:init_p_do_apply/3(line:249) This checks the return values of `khash:lookup` and only proceeds to delete keys if the results are other than `not_found`.
* Give smoosh eunit test coverageJay Doane2022-03-271-0/+2
|
* Simplify adding rebar.config per applicationJay Doane2022-03-271-3/+0
| | | | | | | | It's difficult to add rebar.config files per application when that file name is ignored by git. Also, ken and smoosh are now core CouchDB applications, so it's no longer necessary to git ignore them.
* Eliminate unused variable warningsJay Doane2022-03-271-1/+1
| | | | | | src/couch/src/test_util.erl:276:16: Warning: variable 'Timeout' is unused src/test_util.erl:276:25: Warning: variable 'Delay' is unused src/couchdb/src/couch/src/test_util.erl:276:32: Warning: variable 'Started' is unused
* Merge pull request #3970 from noahshaw11/fix-smoosh-enqueueing-not-found-dbsJay Doane2022-03-262-5/+19
|\ | | | | Fix smoosh enqueueing not found dbs and typo
| * Fix smoosh enqueueing not found dbs and typoncshaw2022-03-262-5/+19
|/
* Add test to ensure rev tree stemming doesn't take too much memoryNick Vatamaniuc2022-03-241-1/+47
| | | | | | | | | | | | | | | | | | `couch_key_tree:stem/2`, as seen in https://github.com/apache/couchdb/pull/3963, has a potential to consume quite a bit of memory. Replacing sets with maps helped in that case however, since stemming has a non-tail recursive section, there is a chance in future versions of Erlang to experience the same behavior again. As a safeguard, add a memory limit test by stemming a larger conflicted rev tree while limiting the maximum process heap size. For that, use the nifty `max_heap_size` process flag, which ensures a process is killed if it starts using too much memory. To reduce the flakiness, use a deterministic tree shape by using a hard-coded seed value and leave a decent margin of error for the memory limit. Ref: https://github.com/apache/couchdb/pull/3963
* Remove include couch_db_intncshaw2022-03-221-3/+2
|
* Opimtize key tree stemming by using maps instead of setsNick Vatamaniuc2022-03-211-5/+5
| | | | | | | | | | | | | | | | | | sets to due to a compiler bug in 22 consumes too much memory and is slower on Erlang 22+ Reproducer: https://gist.github.com/nickva/ddc499e6e05678faf20d344c6e11daaa With sets: ``` couch_key_tree:gen_and_stem(). {8,6848.812683105469} ``` With maps: ``` couch_key_tree:gen_and_stem(). {0,544.000732421875} ```
* Merge pull request #3766 from noahshaw11/add-smoosh-queue-persistenceiilyak2022-03-1517-89/+733
|\ | | | | Add smoosh queue persistence
| * Add smoosh queue persistencencshaw2022-03-1417-89/+733
|/
* Win32-SM91 support and fixesWill2022-03-123-15/+12
|