[SERVER-63531] commitQuorum incorrectly includes buildIndexes:false nodes and error message incorrectly says that only voting nodes are eligible Created: 10/Feb/22  Updated: 29/Oct/23  Resolved: 22/Mar/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: 5.0.0, 4.4.2
Fix Version/s: 5.3.2, 5.0.8, 6.0.0-rc0

Type: Bug Priority: Major - P3
Reporter: Louis Williams Assignee: Louis Williams
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Depends
Documented
is documented by DOCS-15166 Investigate changes in SERVER-63531: ... Closed
Problem/Incident
is caused by SERVER-53176 Return an error when commitQuorum inc... Closed
Related
related to SERVER-56146 Incorrect commitQuorum error message Closed
Backwards Compatibility: Fully Compatible
Backport Requested:
v5.3, v5.0, v4.4
Sprint: Execution Team 2022-03-21
Participants:
Case:

 Description   

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.



 Comments   
Comment by Githook User [ 12/Apr/22 ]

Author:

{'name': 'Louis Williams', 'email': 'louis.williams@mongodb.com', 'username': 'louiswilliams'}

Message: SERVER-63531 Correct error to indicate that non-voting members can be included in commitQuorum

(cherry picked from commit 303a724f519e8d45d3b5d1d31c1ac509cfabf08c)

SERVER-63531 Prevent all buildIndexes:false nodes from being included in commitQuorum
Previously only voting buildIndexes:false nodes were excluded from commitQuorum. But all buildIndexes:false nodes,
including non-voting ones, should be excluded.

(cherry picked from commit 5f6cd9a3c69faef393b79e18b118b29f2cce0123)
Branch: v5.3
https://github.com/mongodb/mongo/commit/f163e680437934975a00d25a14f9655c7d68e159

Comment by Githook User [ 12/Apr/22 ]

Author:

{'name': 'Louis Williams', 'email': 'louis.williams@mongodb.com', 'username': 'louiswilliams'}

Message: SERVER-63531 Correct error to indicate that non-voting members can be included in commitQuorum

(cherry picked from commit 303a724f519e8d45d3b5d1d31c1ac509cfabf08c)

SERVER-63531 Prevent all buildIndexes:false nodes from being included in commitQuorum
Previously only voting buildIndexes:false nodes were excluded from commitQuorum. But all buildIndexes:false nodes,
including non-voting ones, should be excluded.

(cherry picked from commit 5f6cd9a3c69faef393b79e18b118b29f2cce0123)
Branch: v5.0
https://github.com/mongodb/mongo/commit/32ebca2f431d0476bd14dba92d933c5e4fa4447c

Comment by Githook User [ 22/Mar/22 ]

Author:

{'name': 'Louis Williams', 'email': 'louis.williams@mongodb.com', 'username': 'louiswilliams'}

Message: Revert "SERVER-63531 Correct error to indicate that non-voting members can be included in commitQuorum"

This reverts commit 0a38f458292dc64d5be84663bec8102d9a232f1e.
Branch: v5.0
https://github.com/mongodb/mongo/commit/9f6d8c3847e3f837c9a71b8bc2b67c0881619aad

Comment by Githook User [ 16/Mar/22 ]

Author:

{'name': 'Louis Williams', 'email': 'louis.williams@mongodb.com', 'username': 'louiswilliams'}

Message: SERVER-63531 Correct error to indicate that non-voting members can be included in commitQuorum

(cherry picked from commit 303a724f519e8d45d3b5d1d31c1ac509cfabf08c)

SERVER-63531 Prevent all buildIndexes:false nodes from being included in commitQuorum

Previously only voting buildIndexes:false nodes were excluded from commitQuorum. But all buildIndexes:false nodes,
including non-voting ones, should be excluded.

(cherry picked from commit 5f6cd9a3c69faef393b79e18b118b29f2cce0123)
Branch: v5.0
https://github.com/mongodb/mongo/commit/0a38f458292dc64d5be84663bec8102d9a232f1e

Comment by Githook User [ 09/Mar/22 ]

Author:

{'name': 'Louis Williams', 'email': 'louis.williams@mongodb.com', 'username': 'louiswilliams'}

Message: SERVER-63531 Prevent all buildIndexes:false nodes from being included in commitQuorum
Previously only voting buildIndexes:false nodes were excluded from commitQuorum. But all buildIndexes:false nodes,
including non-voting ones, should be excluded.
Branch: master
https://github.com/mongodb/mongo/commit/5f6cd9a3c69faef393b79e18b118b29f2cce0123

Comment by Githook User [ 08/Mar/22 ]

Author:

{'name': 'Louis Williams', 'email': 'louis.williams@mongodb.com', 'username': 'louiswilliams'}

Message: SERVER-63531 Correct error to indicate that non-voting members can be included in commitQuorum
Branch: master
https://github.com/mongodb/mongo/commit/303a724f519e8d45d3b5d1d31c1ac509cfabf08c

Comment by Louis Williams [ 10/Feb/22 ]

This was actually caused by SERVER-53176, not SERVER-56146.

Comment by Eric Milkie [ 10/Feb/22 ]

We only need to backport this fix to 5.3, as per SERVER-56146.

However, we need to backport the documentation correction back to the first version that commitQuorum was supported, since I suspect the docs have been wrong since that time. This could go back to manual4.4 or even earlier.

Generated at Thu Feb 08 05:58:00 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.