[SERVER-53184] Abort in testing when validate fails to traverse an index entry Created: 02/Dec/20  Updated: 29/Oct/23  Resolved: 29/Mar/21

Status: Closed
Project: Core Server
Component/s: Diagnostics, Index Maintenance
Affects Version/s: None
Fix Version/s: 4.9.0

Type: Improvement Priority: Major - P3
Reporter: Eric Milkie Assignee: Louis Williams
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Depends
is depended on by WT-6538 Fix onpage prepare visibility check i... Closed
Backwards Compatibility: Fully Compatible
Backport Requested:
v4.4
Sprint: Execution Team 2021-04-05
Participants:
Linked BF Score: 35

 Description   

Currently, WiredTigerIndex::fullValidate() has two phases. The first phase runs WT verify and records any errors into the fullResults structure.
The second phase opens a cursor on the index table at the beginning (or end if it's a reverse index) and simply iterates the cursor until it hits EOF. It does not record any errors into fullResults; instead, it depends on the cursor to examine and parse each record, including parsing the KeyString in the key of the record and any TypeBits in the value of the record, and for any problems therein to throw an exception, which then bubbles all the way up to the top of the validate command and prevents it from validating anything further (including any more indexes in that same collection).
This behavior is undesirable since in the presence of validation errors, the validate command response doesn't even report what index had the error (you have to look in the log). I think this behavior is best fixed by amending fullValidate()'s second phase to capture exceptions in the cursor seek loop, and to fill in fullResults.



 Comments   
Comment by Githook User [ 29/Mar/21 ]

Author:

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

Message: SERVER-53184 Crash validate in testing when an index cursor fails to
traverse
Branch: master
https://github.com/mongodb/mongo/commit/ac6564ff3ad1973576f6322c18bddfb11abf2590

Comment by Louis Williams [ 26/Mar/21 ]

Updating this ticket to identify the problem more quickly. See WT-6538

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