couchdb:prevent-multiple-responses

Last commit made on 2020-11-12
Get this branch:
git clone -b prevent-multiple-responses https://git.launchpad.net/couchdb

Branch merges

Branch information

Name:
prevent-multiple-responses
Repository:
lp:couchdb

Recent commits

51d522c... by Robert Newson <email address hidden>

Ensure no more than one response per request

Due to a retry loop in erlfb:transactional couchdb might try to send
multiple http responses for a single request which is clearly an
error.

This PR ensures the second attempt is prevented, closing the TCP
socket instead.

1a13880... by Paul J. Davis

Fix flaky test

Waiting for the timeout option to be set means we could still sneak in
and grab the old FDB database handle before fabric2_server updated it in
the application environment.

This new approach just waits until the handle has been updated by
watching the value in the application environment directly.

7d3caa9... by Paul J. Davis

Remove use of caching

Turns out that ebtree caching wasn't quite correct so removing it for
now.

8267950... by Paul J. Davis

Remove ebtree caching

The ebtree caching layer does not work correctly in conjunction with
FoundationDB transaction retry semantics. If we incorrectly cache nodes
that are not actually read from FoundationDB, a retried transaction will
rely on incorrectly cached state and corrupt the ebtree persisted in
FoundationDB.

647fd16... by Robert Newson <email address hidden>

Merge pull request #3244 from apache/aegis_db_info

Add an "encryption" object to db info

475ff60... by Robert Newson <email address hidden>

Add an "encryption" object to db info

The encryption object contains a boolean "enabled"
property. Additional properties might be added by the key manager
which will appear in the "key_manager" sub-object.

753fc9a... by Robert Newson <email address hidden>

Merge pull request #3248 from apache/changes_filter_all_docs_oom_main

Retry filter_docs sequentially if the patch exceeds couchjs stack

9e3637e... by Paul J. Davis

Add test for splitting filter batches

a499d6f... by Robert Newson <email address hidden>

Retry filter_docs sequentially if the patch exceeds couchjs stack

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

4b10750... by Paul J. Davis

Allow administrators to optionally encrypt views