nickva opened a new pull request #3968:
URL: https://github.com/apache/couchdb/pull/3968


   `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


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to