-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Critical - P2
-
None
-
Affects Version/s: None
-
Environment:GCC 13, Ubuntu 24.04
-
Storage Engines - Foundations, Storage Engines - Persistence
-
24.599
-
None
-
1
-
v8.3
During recovery, __recovery_file_scan (txn_recover.c line 976) calls __recovery_metadata_scan_prefix three times to scan the metadata. The two calls for "file:" and "tiered:" prefixes correctly wrap the return value with WT_RET. The call for the "table:" prefix (line 982), which invokes __metadata_clean_incomplete_table, does not. If the cleanup fails for any reason, for example, __wt_schema_drop returning an error or a config parse failure the non-zero return value is silently discarded and recovery proceeds as if nothing went wrong.
For ReProduce;
A csuite test (test_wt<this wt number(I added the WT number later, after this issue was opened>_txn_recovery_error) reproduces the bug and verifies the fix (I attached the before/after outputs on JIRA).
Without the fix, wiredtiger_open returns 0 despite the cleanup failure and the incomplete
metadata entry persists. With the fix, wiredtiger_open correctly returns an error.
Proposed Fix;
The fix is a one-line change wrap the call with WT_RET(), consistent with the two calls that follow it on lines 991-992.