Retry filter_docs sequentially if the patch exceeds couchjs stack #3249
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
A document with lots of conflicts can blow up couchjs if the user
calls _changes with a javascript filter and with
style=all_docs
asthis 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.
Testing recommendations
Covered by unit test, but manual test as follows;
You need to create a highly conflicted document and lower couchjs's memory allowance for a practical test. Here's how I did it;
Without the patch, this will fail with an {exit_status, 1} error from couchjs. With it, it succeeds.
Related Issues or Pull Requests
#3248
Checklist
rel/overlay/etc/default.ini