When returning a cached page from block cache, make sure to make a copy of data.

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Block Cache
    • None
    • Storage Engines, Storage Engines - Persistence
    • SE Persistence - 2025-10-10
    • None

      When a page is returned from the block cache, it should always be a copy, not the actual instance from the cache.

      If the data is neither encrypted nor compressed, the user may (or will) get a reference to the original cache content instead of a copy.

      This code:

      if (!expect_conversion) {
          /* Copy to the caller's buffer before releasing our reference. */
          WT_ERR(__wt_buf_set(session, buf, ip->data, ip->size));
          goto verify;
      }
      

      is intended to create a copy, but if ip == buf, the copy isn't performed.

            Assignee:
            Yury Ershov
            Reporter:
            Yury Ershov
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: