Dirty cache size is not increased correctly

XMLWordPrintableJSON

    • Type: Build Failure
    • Resolution: Unresolved
    • Priority: Critical - P2
    • None
    • Affects Version/s: None
    • Component/s: Cache and Eviction
    • None
    • Storage Engines, Storage Engines - Transactions
    • SE Transactions - 2025-11-07
    • 1

      There is an issue in the change of WT-15711 that the dirty byte are not increased except for a corner case causing wrong stats for the dirty cache size.

          size = 0;
          if (WT_UNLIKELY(!WT_PAGE_IS_INTERNAL(page) &&
                __wt_atomic_load_uint64_relaxed(&S2C(session)->cache->pages_dirty_leaf) < 10 &&
                (WT_IS_METADATA(session->dhandle) || WT_IS_DISAGG_META(session->dhandle) ||
                  WT_IS_HS(session->dhandle)))) {
              increase_dirty_size_first = true;
              size = __wt_atomic_load_size_relaxed(&page->memory_footprint);
              __wt_cache_dirty_incr_size(session, size, false);
          } else
              increase_dirty_size_first = false;
      

      size should always be initialized to memory_footprint instead of 0. Otherwise, we will increase 0 to the dirty cache.

            Assignee:
            Chenhao Qu
            Reporter:
            Chenhao Qu
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: