You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@couchdb.apache.org by GitBox <gi...@apache.org> on 2020/07/02 19:14:48 UTC

[GitHub] [couchdb] janl opened a new pull request #2980: fix: set gen_server:call() timeout to infinity on ioq bypass

janl opened a new pull request #2980:
URL: https://github.com/apache/couchdb/pull/2980


   Before the bypass existed, ioq would call `gen_server:call()`
   on hehalf of it calling module with the queueing logic in between.
   
   Commit e641a740 introduced a way to bypass any queues, but the
   delegated `gen_server:call()` there was added without a timeout
   parameter, leading to a default timeout of 5000ms.
   
   A problem manifests here when operations that are sent through
   ioq that take longer than that 5000ms timeout. In practice, these
   operations should be very rare and this timeout should be a help
   on overloaded systems. However, one sure-fire way to cause an issue
   on an otherwise idle machine is raise the max_document_size and
   store unreasonably large documents, think 50MB+ of raw JSON).
   
   Not that we recommend this, but folks have run this fine on 2.x
   before the ioq changes and it isn’t too hard to support here.
   
   By adding an `infinity` timeout delegated `gen_server:call()` in
   the queue bypasse case, this no longer applies.
   
   Thanks to Joan @woahli Touzet, Bob @rnewson Newson and
   Paul @davisp Davis for helping to track this down.
   
   


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [couchdb] janl merged pull request #2980: fix: set gen_server:call() timeout to infinity on ioq bypass

Posted by GitBox <gi...@apache.org>.
janl merged pull request #2980:
URL: https://github.com/apache/couchdb/pull/2980


   


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org