-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Diagnostics, Index Maintenance
-
None
-
Fully Compatible
-
v4.4
-
Execution Team 2021-04-05
-
35
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.
- is depended on by
-
WT-6538 Fix onpage prepare visibility check if the start and stop are from the same prepared transaction
- Closed