chewbranca opened a new pull request, #4906:
URL: https://github.com/apache/couchdb/pull/4906

   This ensures that the coordinator process flushes on demonitoring of the 
attachment refs in chttpd_db. The problem here is that it's possible to receive 
a 'DOWN' message for the monitor ref that is not receive'ed, causing it to 
stick around in the coordinator message queue while the next http request is 
handled. The pending message will not become apparent until the next fabric 
call is invoked, as fabric expects to have full access to all messages in the 
calling process, an expectation which is violated by the pending message, 
causing a case clause crash in the fabric receive message callbacks.
   
   I noticed this during eunit runs with stubbed attachment handles that 
generate an immediate noproc message on the monitor call. Normal operations 
should not result in an immediate noproc result on monitoring the attachment 
process, however, any failure that causes the attachment process to fail 
between acquisition of the refs and the demonitor calls will induce this bug, 
causing the next http request handled by the particular chttpd coordinator pool 
processs to fail on whatever next fabric call is made.
   


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