-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Checkpoints
-
None
-
Storage Engines - Persistence
-
None
-
None
Change the following assert always to an assert in checkpoint_txn.c:
if (delta > 0) {
WT_ASSERT_ALWAYS(session, UINT64_MAX - db >= (uint64_t)delta,
"Disaggregated storage database size too large");
__wt_disagg_set_database_size(session, db + (uint64_t)delta);
} else {
WT_ASSERT_ALWAYS(
session, db >= (uint64_t)(-delta), "Disaggregated storage database size too small");
__wt_disagg_set_database_size(session, db - (uint64_t)(-delta));
}
WT_ASSERT_ALWAYS can be triggered whether we are in debug or release build, while WT_ASSERT is only in debug build.
We are not ready yet to have the assertions enabled in both builds.
Context: This ASSERT_ALWAYS should not be in the checkpoint size merge. It was replaced with a WT_ASSERT in this fix, but managed to sneak it's way back in here. This ticket resolves this.