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.
This ticket additionally addresses the fact that we permit non-voting buildIndexes:false nodes to be included in a commitQuorum. This is incorrect and buildIndexes:false nodes should never be included, regardless of voting status.