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

innodb.innodb-change-buffer-recovery-innodb fails with incorrect results or crash

    Details

      Description

      In debug mode running a test with --repeat results in an every second run failed like this:

      innodb.innodb-change-buffer-recovery 'innodb' [ fail ]
              Test ended at 2019-04-26 12:23:01
       
      CURRENT_TEST: innodb.innodb-change-buffer-recovery
      --- /home/kevg/work/mariadb/mysql-test/suite/innodb/r/innodb-change-buffer-recovery.result	2019-04-26 12:14:05.804197310 +0300
      +++ /home/kevg/work/mariadb/mysql-test/suite/innodb/r/innodb-change-buffer-recovery.reject	2019-04-26 12:23:01.364749083 +0300
      @@ -38,7 +38,7 @@
       ERROR HY000: Lost connection to MySQL server during query
       disconnect con1;
       connection default;
      -FOUND 1 /Wrote log record for ibuf update in place operation/ in my_restart.err
      +FOUND 2 /Wrote log record for ibuf update in place operation/ in my_restart.err
       CHECK TABLE t1;
       Table	Op	Msg_type	Msg_text
       test.t1	check	status	OK
       
      mysqltest: Result content mismatch
       
       - saving '/home/kevg/work/debug/mysql-test/var/log/innodb.innodb-change-buffer-recovery-innodb/' to '/home/kevg/work/debug/mysql-test/var/log/innodb.innodb-change-buffer-recovery-innodb/'
      

      In debug mode with -O2 it sometime crashes like this:

      #6  0x00007f4016d55012 in __GI___assert_fail (assertion=0xfadc93 "field != 16 || val", file=0xf9048b "/work/mariadb/storage/innobase/include/page0page.ic", line=176, function=0xfadc3f "void page_header_set_field(ib_page_t *, page_zip_des_t *, ulint, ulint)") at assert.c:101
      #7  0x0000000000a1bbcb in page_header_set_field (page=<optimized out>, page_zip=0x0, field=16, val=<optimized out>) at page0page.ic:176
      #8  page_mem_free (page=<optimized out>, page_zip=0x0, rec=<optimized out>, index=<optimized out>, offsets=<optimized out>) at page0page.ic:1047
      #9  page_cur_delete_rec (cursor=0x7f40106e8d01, index=<optimized out>, offsets=0x7ffe97abb990, mtr=0x7ffe97abc230) at page0cur.cc:2417
      #10 0x0000000000b79fab in btr_cur_optimistic_delete_func (cursor=0x7ffe97abc760, flags=<optimized out>, mtr=0x7ffe97abc230) at btr0cur.cc:5163
      #11 0x00000000009c4387 in ibuf_delete_rec (space=4, page_no=27, pcur=0x7ffe97abc760, search_tuple=0x26faf98, mtr=0x7ffe97abc230) at ibuf0ibuf.cc:4261
      #12 0x00000000009c11de in ibuf_merge_or_delete_for_page (block=0x7f40102526a8, page_id=..., page_size=0x7f40102526b8, update_ibuf_bitmap=1) at ibuf0ibuf.cc:4645
      #13 0x00000000009fcd6f in mlog_init_t::ibuf_merge (this=<optimized out>, mtr=...) at log0recv.cc:330
      #14 0x00000000009f44c5 in recv_apply_hashed_log_recs (last_batch=<optimized out>) at log0recv.cc:2516
      #15 0x0000000000ae989b in innobase_start_or_create_for_mysql () at srv0start.cc:2224
      #16 0x000000000097d77f in innobase_init (p=<optimized out>) at ha_innodb.cc:4377
      #17 0x00000000007af955 in ha_initialize_handlerton (plugin=0x2367ca8) at handler.cc:521
      #18 0x000000000060cc59 in plugin_initialize (tmp_root=0x7ffe97ac26b8, plugin=0x2367ca8, argc=0x15d1f68 <remaining_argc>, argv=0x2225428, options_only=<optimized out>) at sql_plugin.cc:1416
      #19 0x000000000060c77e in plugin_init (argc=0x15d1f68 <remaining_argc>, argv=0x2225428, flags=2) at sql_plugin.cc:1697
      #20 0x00000000005525b5 in init_server_components () at mysqld.cc:5311
      #21 mysqld_main (argc=<optimized out>, argv=0x2225428) at mysqld.cc:5907
      

      Adding -mysqld=-debug=d,ib_log_checkpoint_avoid make debug version fail with the same backtrace.

        Attachments

          Activity

            People

            • Assignee:
              kevg Eugene Kosov
              Reporter:
              kevg Eugene Kosov
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: