Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-17196

Crash during instant ADD COLUMN with long DEFAULT value

    XMLWordPrintable

    Details

      Description

      Thirunarayanan Balathandayuthapani reported a crash with the following instant ADD COLUMN operation that involves splitting the leftmost leaf page and storing a default value off-page:

      create table t1(f1 int, f2 int not null)engine=innodb;
      insert into t1 values(1, 2);
      alter table t1 add column f3 int not null default 4, algorithm=instant;
      alter table t1 add column f4 blob not null default repeat('a', 9999), algorithm=instant;
      check table t1;
      drop table t1;
      

      For the second alter table, an assertion would fail in a debug build:

      10.3 ed49f9aae2ad4f8d89294e91fba6a9ec704ded49

      btr/btr0cur.cc:4679: dberr_t btr_cur_pessimistic_update(ulint, btr_cur_t*, ulint**, mem_heap_t**, mem_heap_t*, big_rec_t**, upd_t*, ulint, que_thr_t*, trx_id_t, mtr_t*): Assertion `flags & BTR_KEEP_POS_FLAG' failed.
      

      In a non-debug build, no assertion fails for this test, and the test passes. Theoretically, it might be possible that the default values stored off-page could be attached to a wrong record.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              marko Marko Mäkelä
              Reporter:
              marko Marko Mäkelä
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: