Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-13479

__block_off_remove no longer sets el->last = nullptr

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT11.3.0, 8.1.0-rc0
    • Affects Version/s: None
    • Component/s: Block Manager
    • None
    • Storage Engines

      • A summary from the consumers' point of view,

      This was caused by WT-13451 so any version that does not contain that does not have this bug.

      An extent list is not updated properly. This can cause crashes due to double frees or other unspecified behavior. For example, deleting a checkpoint can cause a crash due to this bug.

      • A definition of done,

      Fix __ block_off_remove to use __ wti_block_ext_free correctly. Check all other callers of __ wti_block_ext_free to make sure they do not have similar bugs.

      This issue fixes only __ block_off_free. Another ticket WT-13480 has been filed to check all other callers of __ wti_block_ext_free() and fix them too.

      • The reproducing steps,

      test/unittest/tests/block/test_extent_list_block.cpp TEST_CASE("Extent Lists: block_off_remove", "[extent_list]") SECTION("remove multiple extents and verify all extents after each remove") crashes with a double free since __block_off_remove() does not clear el->last.

            Assignee:
            tod.johnson@mongodb.com Tod Johnson
            Reporter:
            tod.johnson@mongodb.com Tod Johnson
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: