[SERVER-79123] Tests enabling skipWriteConflictRetries failpoint incompatible with index build abort Created: 19/Jul/23 Updated: 29/Oct/23 Resolved: 29/Aug/23 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 7.2.0-rc0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Yujin Kang Park | Assignee: | Benety Goh |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||
| Assigned Teams: |
Storage Execution NAMER
|
||||||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||||||
| Operating System: | ALL | ||||||||||||||||||||||||||||
| Sprint: | Execution NAMR Team 2023-09-04 | ||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||
| Linked BF Score: | 5 | ||||||||||||||||||||||||||||
| Description |
|
Index builds handle WriteConflicts while aborting, and it is not expected that the operation fails as it means the index build ended up partially teared down, triggering this fassert. The initial sync fuzzer, and potentially other tests, enable the skipWriteConflictRetries and can trigger the fassert. |
| Comments |
| Comment by Githook User [ 29/Aug/23 ] |
|
Author: {'name': 'Benety Goh', 'email': 'benety@mongodb.com', 'username': 'benety'}Message: |
| Comment by Max Hirschhorn [ 25/Aug/23 ] |
|
benety.goh@mongodb.com, I'm not sure I understand. Won't the change you're proposing mean BF-28966 cannot be resolved because the fassert() will still occur? |
| Comment by Benety Goh [ 25/Aug/23 ] |
|
max.hirschhorn@mongodb.com, in this case the index build abort, initiated through the voteAbortIndexBuild command, is considered a user operation in the context of Since the skipWriteConflictRetries mechanism is critical to our rollback and initial sync fuzzer framework and that the issue in this ticket does not affect production deployments, yujin.kang@mongodb.com and I are considering adding a warning message before the fatal assertion to assist developers in diagnosing build failures with this exact failure. |
| Comment by Max Hirschhorn [ 22/Aug/23 ] |
|
benety.goh@mongodb.com, it isn't important that the exception propagates as a WriteConflict back to the client. What is important is for the initial sync fuzzer and rollback fuzzer to receive EWOULDBLOCK-like errors when running their operations and avoid ending up in a test-induced deadlock. I didn't fully understand the explanation for how index builds are impacted by the enablement of the skipWriteConflictRetries failpoint. Would it be possible to extend the work done under |
| Comment by Benety Goh [ 22/Aug/23 ] |
|
max.hirschhorn@mongodb.com, do you think this fail point still makes sense to keep around today? It seems to trigger behavior that doesn't seem in line with how the server deals with WriteConflictExceptions internally, in that we generally don't expect to bubble up WriteConflictExceptions to the user. CC:geert.bosch@mongodb.com, josef.ahmad@mongodb.com |
| Comment by Benety Goh [ 22/Aug/23 ] |
|
This fail point was added in |