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

row0row.ic:52: ulint row_get_trx_id_offset Assertion `len == 6' failed

    XMLWordPrintable

    Details

      Description

      testcase from prefix_index_liftedlimit.test (https://github.com/MariaDB/server/blob/mdev-13626/mysql-test/suite/innodb_zip/t/prefix_index_liftedlimit.test)

      CREATE TABLE worklog5743_key8 (
      col_1_varchar VARCHAR (4000) , col_2_varchar VARCHAR (4000),
      PRIMARY KEY (col_1_varchar(3072))
      ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8, engine = innodb;
       
      INSERT INTO worklog5743_key8 VALUES(REPEAT("a", 4000) , REPEAT("o", 4000));
      INSERT INTO worklog5743_key8 VALUES(REPEAT("b", 4000) , REPEAT("p", 4000));
      SELECT col_1_varchar  = REPEAT("a", 4000) , col_2_varchar = REPEAT("o", 4000) FROM worklog5743_key8;
       
      UPDATE worklog5743_key8 SET col_1_varchar = REPEAT("c", 4000)
      WHERE col_1_varchar = REPEAT("a", 4000) AND col_2_varchar = REPEAT("o", 4000);
      

      MariaDB [test]> CREATE TABLE worklog5743_key8 (
          -> col_1_varchar VARCHAR (4000) , col_2_varchar VARCHAR (4000) ,
          -> PRIMARY KEY (col_1_varchar(3072))
          -> ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8, engine = innodb;
      Query OK, 0 rows affected (0.21 sec)
       
      MariaDB [test]> INSERT INTO worklog5743_key8 VALUES(REPEAT("a", 4000) , REPEAT("o", 4000));
      Query OK, 1 row affected (0.06 sec)
       
      MariaDB [test]> INSERT INTO worklog5743_key8 VALUES(REPEAT("b", 4000) , REPEAT("p", 4000));
      Query OK, 1 row affected (0.07 sec)
       
      MariaDB [test]> SELECT col_1_varchar  = REPEAT("a", 4000) , col_2_varchar = REPEAT("o", 4000)
          -> FROM worklog5743_key8;
      +------------------------------------+-----------------------------------+
      | col_1_varchar  = REPEAT("a", 4000) | col_2_varchar = REPEAT("o", 4000) |
      +------------------------------------+-----------------------------------+
      |                                  1 |                                 1 |
      |                                  0 |                                 0 |
      +------------------------------------+-----------------------------------+
      2 rows in set (0.00 sec)
       
      MariaDB [test]> UPDATE worklog5743_key8 SET col_1_varchar = REPEAT("c", 4000)
          -> WHERE col_1_varchar = REPEAT("a", 4000) AND col_2_varchar = REPEAT("o", 4000);
      ERROR 2013 (HY000): Lost connection to MySQL server during query
      

      2017-11-01 11:52:03 140650219181888 [Note] /home/alice/aliska/10.2/sql/mysqld: ready for connections.
      Version: '10.2.10-MariaDB-debug-log'  socket: '/home/alice/aliska/10.2/mysql-test/var/tmp/mysqld.1.sock'  port: 16000  Source distribution
      mysqld: /home/alice/aliska/10.2/storage/innobase/include/row0row.ic:52: ulint row_get_trx_id_offset(const dict_index_t*, const ulint*): Assertion `len == 6' failed.
      171101 11:52:03 [ERROR] mysqld got signal 6 ;
      This could be because you hit a bug. It is also possible that this binary
      or one of the libraries it was linked against is corrupt, improperly built,
      or misconfigured. This error can also be caused by malfunctioning hardware.
       
      To report this bug, see https://mariadb.com/kb/en/reporting-bugs
       
      We will try our best to scrape up some info that will hopefully help
      diagnose the problem, but since we have already crashed, 
      something is definitely wrong and this may fail.
       
      Server version: 10.2.10-MariaDB-debug-log
      key_buffer_size=1048576
      read_buffer_size=131072
      max_used_connections=1
      max_threads=153
      thread_count=7
      It is possible that mysqld could use up to 
      key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 63152 K  bytes of memory
      Hope that's ok; if not, decrease some variables in the equation.
       
      Thread pointer: 0x7feb58000a98
      Attempting backtrace. You can use the following information to find out
      where mysqld died. If you see no messages after this, something went
      terribly wrong...
      stack_bottom = 0x7feba42b3e70 thread_stack 0x49000
      /home/alice/aliska/10.2/sql/mysqld(my_print_stacktrace+0x38)[0x55d27ace74df]
      /home/alice/aliska/10.2/sql/mysqld(handle_fatal_signal+0x3a3)[0x55d27a578d62]
      /lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7febad299390]
      /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x38)[0x7febac652428]
      mysys/stacktrace.c:267(my_print_stacktrace)[0x7febac65402a]
      sql/signal_handler.cc:168(handle_fatal_signal)[0x7febac64abd7]
      /lib/x86_64-linux-gnu/libc.so.6(+0x2dc82)[0x7febac64ac82]
      include/row0row.ic:54(row_get_trx_id_offset(dict_index_t const*, unsigned long const*))[0x55d27a8a783f]
      include/row0row.ic:76(row_get_rec_trx_id(unsigned char const*, dict_index_t const*, unsigned long const*))[0x55d27a8a78f3]
      page/page0zip.cc:3718(page_zip_write_rec(page_zip_des_t*, unsigned char const*, dict_index_t*, unsigned long const*, unsigned long))[0x55d27a8af360]
      page/page0cur.cc:1919(page_cur_insert_rec_zip(page_cur_t*, dict_index_t*, unsigned char const*, unsigned long*, mtr_t*))[0x55d27a897714]
      include/page0cur.ic:289(page_cur_tuple_insert(page_cur_t*, dtuple_t const*, dict_index_t*, unsigned long**, mem_block_info_t**, unsigned long, mtr_t*, bool))[0x55d27a9eccb6]
      btr/btr0btr.cc:2129(btr_root_raise_and_insert(unsigned long, btr_cur_t*, unsigned long**, mem_block_info_t**, dtuple_t const*, unsigned long, mtr_t*))[0x55d27a9f26a1]
      btr/btr0cur.cc:3239(btr_cur_pessimistic_insert(unsigned long, btr_cur_t*, unsigned long**, mem_block_info_t**, dtuple_t*, unsigned char**, big_rec_t**, unsigned long, que_thr_t*, mtr_t*))[0x55d27aa13c9b]
      row/row0ins.cc:2728(row_ins_clust_index_entry_low(unsigned long, unsigned long, dict_index_t*, unsigned long, dtuple_t*, unsigned long, que_thr_t*, bool))[0x55d27a8ed9f0]
      row/row0ins.cc:3219(row_ins_clust_index_entry(dict_index_t*, dtuple_t*, que_thr_t*, unsigned long, bool))[0x55d27a8ef017]
      row/row0upd.cc:2781(row_upd_clust_rec_by_insert(upd_node_t*, dict_index_t*, que_thr_t*, unsigned long, unsigned long, mtr_t*))[0x55d27a9699a2]
      row/row0upd.cc:3199(row_upd_clust_step(upd_node_t*, que_thr_t*))[0x55d27a96ad02]
      row/row0upd.cc:3270(row_upd(upd_node_t*, que_thr_t*))[0x55d27a96b012]
      row/row0upd.cc:3416(row_upd_step(que_thr_t*))[0x55d27a96b4f1]
      row/row0mysql.cc:1974(row_update_for_mysql(row_prebuilt_t*))[0x55d27a90e7a5]
      handler/ha_innodb.cc:9354(ha_innobase::update_row(unsigned char const*, unsigned char*))[0x55d27a7cfaa5]
      sql/handler.cc:6028(handler::ha_update_row(unsigned char const*, unsigned char*))[0x55d27a58862a]
      sql/sql_update.cc:809(mysql_update(THD*, TABLE_LIST*, List<Item>&, List<Item>&, Item*, unsigned int, st_order*, unsigned long long, enum_duplicates, bool, unsigned long long*, unsigned long long*))[0x55d27a3f4fb3]
      sql/sql_parse.cc:4261(mysql_execute_command(THD*))[0x55d27a30c6d6]
      sql/sql_parse.cc:7861(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55d27a317ee5]
      sql/sql_parse.cc:1807(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55d27a305bb2]
      sql/sql_parse.cc:1360(do_command(THD*))[0x55d27a304509]
      sql/sql_connect.cc:1354(do_handle_one_connection(CONNECT*))[0x55d27a45197e]
      sql/sql_connect.cc:1261(handle_one_connection)[0x55d27a4516fe]
      perfschema/pfs.cc:1865(pfs_spawn_thread)[0x55d27a7ad256]
      /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7febad28f6ba]
      /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7febac7243dd]
       
      Trying to get some variables.
      Some pointers may be invalid and cause the dump to abort.
      Query (0x7feb58074840): UPDATE worklog5743_key8 SET col_1_varchar = REPEAT("c", 4000) WHERE col_1_varchar = REPEAT("a", 4000) AND col_2_varchar = REPEAT("o", 4000)
      Connection ID (thread ID): 9
      Status: NOT_KILLED
      
      

      Thread 1 (Thread 0x7fa538133700 (LWP 16239)):
      #0  __pthread_kill (threadid=<optimized out>, signo=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:62
      #1  0x000055fa58ea25d1 in my_write_core (sig=6) at /home/alice/aliska/10.2/mysys/stacktrace.c:477
      #2  0x000055fa5873410e in handle_fatal_signal (sig=6) at /home/alice/aliska/10.2/sql/signal_handler.cc:303
      #3  <signal handler called>
      #4  0x00007fa53ecce428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
      #5  0x00007fa53ecd002a in __GI_abort () at abort.c:89
      #6  0x00007fa53ecc6bd7 in __assert_fail_base (fmt=<optimized out>, assertion=assertion@entry=0x55fa590d0b92 "len == 6", file=file@entry=0x55fa590d0b10 "/home/alice/aliska/10.2/storage/innobase/include/row0row.ic", line=line@entry=52, function=function@entry=0x55fa590d5460 <_ZZL21row_get_trx_id_offsetPK12dict_index_tPKmE19__PRETTY_FUNCTION__> "ulint row_get_trx_id_offset(const dict_index_t*, const ulint*)") at assert.c:92
      #7  0x00007fa53ecc6c82 in __GI___assert_fail (assertion=0x55fa590d0b92 "len == 6", file=0x55fa590d0b10 "/home/alice/aliska/10.2/storage/innobase/include/row0row.ic", line=52, function=0x55fa590d5460 <_ZZL21row_get_trx_id_offsetPK12dict_index_tPKmE19__PRETTY_FUNCTION__> "ulint row_get_trx_id_offset(const dict_index_t*, const ulint*)") at assert.c:101
      #8  0x000055fa58a6283f in row_get_trx_id_offset (index=0x7fa4e803df88, offsets=0x7fa53812f580) at /home/alice/aliska/10.2/storage/innobase/include/row0row.ic:52
      #9  0x000055fa58a628f3 in row_get_rec_trx_id (rec=0x7fa538588080 'a' <repeats 200 times>..., index=0x7fa4e803df88, offsets=0x7fa53812f580) at /home/alice/aliska/10.2/storage/innobase/include/row0row.ic:76
      #10 0x000055fa58a6a360 in page_zip_write_rec (page_zip=0x7fa5383ddf18, rec=0x7fa538588080 'a' <repeats 200 times>..., index=0x7fa4e803df88, offsets=0x7fa53812f580, create=1) at /home/alice/aliska/10.2/storage/innobase/page/page0zip.cc:3718
      #11 0x000055fa58a52714 in page_cur_insert_rec_zip (cursor=0x7fa53812f488, index=0x7fa4e803df88, rec=0x7fa4e8092350 'a' <repeats 200 times>..., offsets=0x7fa53812f580, mtr=0x7fa53812f8a0) at /home/alice/aliska/10.2/storage/innobase/page/page0cur.cc:1916
      #12 0x000055fa58ba7cb6 in page_cur_tuple_insert (cursor=0x7fa53812f488, tuple=0x7fa4e8072e28, index=0x7fa4e803df88, offsets=0x7fa53812f420, heap=0x7fa53812f418, n_ext=0, mtr=0x7fa53812f8a0, use_cache=false) at /home/alice/aliska/10.2/storage/innobase/include/page0cur.ic:289
      #13 0x000055fa58bad6a1 in btr_root_raise_and_insert (flags=0, cursor=0x7fa53812f480, offsets=0x7fa53812f420, heap=0x7fa53812f418, tuple=0x7fa4e804ada8, n_ext=1, mtr=0x7fa53812f8a0) at /home/alice/aliska/10.2/storage/innobase/btr/btr0btr.cc:2129
      #14 0x000055fa58bcec9b in btr_cur_pessimistic_insert (flags=0, cursor=0x7fa53812f480, offsets=0x7fa53812f420, heap=0x7fa53812f418, entry=0x7fa4e804ada8, rec=0x7fa53812f428, big_rec=0x7fa53812f410, n_ext=1, thr=0x7fa4e8082c38, mtr=0x7fa53812f8a0) at /home/alice/aliska/10.2/storage/innobase/btr/btr0cur.cc:3239
      #15 0x000055fa58aa89f0 in row_ins_clust_index_entry_low (flags=0, mode=33, index=0x7fa4e803df88, n_uniq=1, entry=0x7fa4e804ada8, n_ext=0, thr=0x7fa4e8082c38, dup_chk_only=false) at /home/alice/aliska/10.2/storage/innobase/row/row0ins.cc:2728
      #16 0x000055fa58aaa017 in row_ins_clust_index_entry (index=0x7fa4e803df88, entry=0x7fa4e804ada8, thr=0x7fa4e8082c38, n_ext=0, dup_chk_only=false) at /home/alice/aliska/10.2/storage/innobase/row/row0ins.cc:3219
      #17 0x000055fa58b249a2 in row_upd_clust_rec_by_insert (node=0x7fa4e8082908, index=0x7fa4e803df88, thr=0x7fa4e8082c38, referenced=0, foreign=0, mtr=0x7fa538130430) at /home/alice/aliska/10.2/storage/innobase/row/row0upd.cc:2781
      #18 0x000055fa58b25d02 in row_upd_clust_step (node=0x7fa4e8082908, thr=0x7fa4e8082c38) at /home/alice/aliska/10.2/storage/innobase/row/row0upd.cc:3199
      #19 0x000055fa58b26012 in row_upd (node=0x7fa4e8082908, thr=0x7fa4e8082c38) at /home/alice/aliska/10.2/storage/innobase/row/row0upd.cc:3270
      #20 0x000055fa58b264f1 in row_upd_step (thr=0x7fa4e8082c38) at /home/alice/aliska/10.2/storage/innobase/row/row0upd.cc:3416
      #21 0x000055fa58ac97a5 in row_update_for_mysql (prebuilt=0x7fa4e8078198) at /home/alice/aliska/10.2/storage/innobase/row/row0mysql.cc:1972
      #22 0x000055fa5898aaa5 in ha_innobase::update_row (this=0x7fa4e807cbb0, old_row=0x7fa4e8075508 "\376\240\017", 'a' <repeats 197 times>..., new_row=0x7fa4e80735c0 "\376\240\017", 'c' <repeats 197 times>...) at /home/alice/aliska/10.2/storage/innobase/handler/ha_innodb.cc:9354
      #23 0x000055fa5874362a in handler::ha_update_row (this=0x7fa4e807cbb0, old_data=0x7fa4e8075508 "\376\240\017", 'a' <repeats 197 times>..., new_data=0x7fa4e80735c0 "\376\240\017", 'c' <repeats 197 times>...) at /home/alice/aliska/10.2/sql/handler.cc:6028
      #24 0x000055fa585affb3 in mysql_update (thd=0x7fa4e8000a98, table_list=0x7fa4e804cb00, fields=..., values=..., conds=0x7fa4e807ec30, order_num=0, order=0x0, limit=18446744073709551615, handle_duplicates=DUP_ERROR, ignore=false, found_return=0x7fa538131820, updated_return=0x7fa538131900) at /home/alice/aliska/10.2/sql/sql_update.cc:808
      #25 0x000055fa584c76d6 in mysql_execute_command (thd=0x7fa4e8000a98) at /home/alice/aliska/10.2/sql/sql_parse.cc:4261
      #26 0x000055fa584d2ee5 in mysql_parse (thd=0x7fa4e8000a98, rawbuf=0x7fa4e805bc80 "UPDATE worklog5743_key8 SET col_1_varchar = REPEAT(\"c\", 4000)\nWHERE col_1_varchar = REPEAT(\"a\", 4000) AND col_2_varchar = REPEAT(\"o\", 4000)", length=139, parser_state=0x7fa5381321f0, is_com_multi=false, is_next_command=false) at /home/alice/aliska/10.2/sql/sql_parse.cc:7861
      #27 0x000055fa584c0bb2 in dispatch_command (command=COM_QUERY, thd=0x7fa4e8000a98, packet=0x7fa4e8007f49 "UPDATE worklog5743_key8 SET col_1_varchar = REPEAT(\"c\", 4000)\nWHERE col_1_varchar = REPEAT(\"a\", 4000) AND col_2_varchar = REPEAT(\"o\", 4000)", packet_length=139, is_com_multi=false, is_next_command=false) at /home/alice/aliska/10.2/sql/sql_parse.cc:1805
      #28 0x000055fa584bf509 in do_command (thd=0x7fa4e8000a98) at /home/alice/aliska/10.2/sql/sql_parse.cc:1360
      #29 0x000055fa5860c97e in do_handle_one_connection (connect=0x55fa5c5ae438) at /home/alice/aliska/10.2/sql/sql_connect.cc:1354
      #30 0x000055fa5860c6fe in handle_one_connection (arg=0x55fa5c5ae438) at /home/alice/aliska/10.2/sql/sql_connect.cc:1260
      #31 0x000055fa58968256 in pfs_spawn_thread (arg=0x55fa5c5634a8) at /home/alice/aliska/10.2/storage/perfschema/pfs.cc:1863
      #32 0x00007fa53f90b6ba in start_thread (arg=0x7fa538133700) at pthread_create.c:333
      #33 0x00007fa53eda03dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
      
      

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              marko Marko Mäkelä
              Reporter:
              alice Alice Sherepa
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: