The following changes have been made:
- Error messages have been updated to indicate that non-voting nodes may be included in an index build commitQuourm. Our documentation incorrectly states that commitQuorum only includes "data-bearing voting replica set members". This should be updated to say "data-bearing replica set members"
- Nodes with buildIndexes:false can never be included in a commitQuorum. Previously, we incorrectly allowed non-voting buildIndexes:false nodes to be part of a commitQuorum, but these nodes should never be included, regardless of voting status.
The commitQuorum option for index builds does not allow non-voting nodes to participate. With the default commitQuorum of "votingMembers", a lagged non-voting secondary, like an analytics node, can fall behind. Other voting nodes will commit, but when this secondary receives a commitIndexBuild oplog entry, it stalls until the index build completes. There is currently no way to use commitQuorum to include the non-voting node to prevent this from happening.
commitQuorum does allow you to include non-voting nodes, however the error message we report "Not enough data-bearing voting nodes to satisfy commit quorum" is incorrect. We should also update the documentation to reflect this.