cloudant/fabric — pull request #38 by kocolosk (2012-04-13 13:50:49+00:00)
Title: Ignore 'complete' messages from suppressed workers

If we have a database where one copy of a partition contributes zero rows to a reduce view but another copy of the same partition contributes one or more rows we can end up erroneously removing a worker which has already contributed a row to a response. This puts the coordinator into an inconsistent state and can ultimately cause the response to hang.

The fix is simple -- just guard processing of 'complete' messages by checking if the worker sending the message has already lost the race to another copy.

BugzID: 13461