[PS8QA] Assertion failure: rem0rec.cc:392:len <= col->len...

Description

CREATE DATABASE test; USE test; CREATE TABLE t1(a VARBINARY(1)COLUMN_FORMAT COMPRESSED) ROW_FORMAT=COMPRESSED; ALTER TABLE t1 KEY_BLOCK_SIZE=0; INSERT INTO t1 VALUES(0);

Leads to

2018-11-16T01:05:54.563002Z 8 [ERROR] [MY-000000] [InnoDB] InnoDB: Assertion failure: rem0rec.cc:392:len <= col->len || ((col->mtype) == 5 || (col->mtype) == 16 || (col->mtype) == 14) || (((col->mtype) == 15 || (col->mtype) == 16) && len == 2 * 2 * sizeof(double)) || ((col->mtype == 1 || col->mtype == 4 || col->mtype == 12) && (col->len == 0 || len <= col->len + prtype_get_compression_extra(col->prtype))) InnoDB: thread 140564046489344
Core was generated by `/sda/PS131118-percona-server-8.0.12-1-linux-x86_64-debug/bin/mysqld --no-defaul'. Program terminated with signal SIGABRT, Aborted. #0 __pthread_kill (threadid=<optimized out>, signo=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:57 [Current thread is 1 (Thread 0x7fd79e0f2700 (LWP 2288))] (gdb) bt #0 __pthread_kill (threadid=<optimized out>, signo=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:57 #1 0x000055a99dacbc17 in my_write_core (sig=6) at /git/PS-8.0-trunk_dbg/mysys/stacktrace.cc:278 #2 0x000055a99ca3c48e in handle_fatal_signal (sig=6) at /git/PS-8.0-trunk_dbg/sql/signal_handler.cc:254 #3 <signal handler called> #4 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 #5 0x00007fd79e133801 in __GI_abort () at abort.c:79 #6 0x000055a99df8a911 in ut_dbg_assertion_failed ( expr=0x55a99f1aa618 "len <= col->len || ((col->mtype) == 5 || (col->mtype) == 16 || (col->mtype) == 14) || (((col->mtype) == 15 || (col->mtype) == 16) && len == 2 * 2 * sizeof(double)) || ((col->mtype == 1 || col->mtype ="..., file=0x55a99f1aa430 "/git/PS-8.0-trunk_dbg/storage/innobase/rem/rem0rec.cc", line=392) at /git/PS-8.0-trunk_dbg/storage/innobase/ut/ut0dbg.cc:90 #7 0x000055a99de4bfb9 in rec_get_converted_size_comp_prefix_low (index=0x7fd76ac5d9b8, fields=0x7fd76adcac08, n_fields=4, v_entry=0x0, extra=0x0, status=0x7fd79e0ee450, temp=false) at /git/PS-8.0-trunk_dbg/storage/innobase/rem/rem0rec.cc:387 #8 0x000055a99de4c767 in rec_get_converted_size_comp (index=0x7fd76ac5d9b8, status=0, fields=0x7fd76adcac08, n_fields=4, extra=0x0) at /git/PS-8.0-trunk_dbg/storage/innobase/rem/rem0rec.cc:527 #9 0x000055a99dfd248f in rec_get_converted_size (index=0x7fd76ac5d9b8, dtuple=0x7fd76adcabb8, n_ext=0) at /git/PS-8.0-trunk_dbg/storage/innobase/include/rem0rec.ic:1063 #10 0x000055a99dfde2da in btr_cur_optimistic_insert (flags=0, cursor=0x7fd79e0ee840, offsets=0x7fd79e0ee7e8, heap=0x7fd79e0ee7e0, entry=0x7fd76adcabb8, rec=0x7fd79e0ee7f0, big_rec=0x7fd79e0ee7d8, n_ext=0, thr=0x7fd76ae5e9c0, mtr=0x7fd79e0eedf0) at /git/PS-8.0-trunk_dbg/storage/innobase/btr/btr0cur.cc:2787 #11 0x000055a99de77868 in row_ins_clust_index_entry_low (flags=0, mode=2, index=0x7fd76ac5d9b8, n_uniq=0, entry=0x7fd76adcabb8, n_ext=0, thr=0x7fd76ae5e9c0, dup_chk_only=false) at /git/PS-8.0-trunk_dbg/storage/innobase/row/row0ins.cc:2523 #12 0x000055a99de7985e in row_ins_clust_index_entry (index=0x7fd76ac5d9b8, entry=0x7fd76adcabb8, thr=0x7fd76ae5e9c0, n_ext=0, dup_chk_only=false) at /git/PS-8.0-trunk_dbg/storage/innobase/row/row0ins.cc:3138 #13 0x000055a99de79d71 in row_ins_index_entry (index=0x7fd76ac5d9b8, entry=0x7fd76adcabb8, thr=0x7fd76ae5e9c0) at /git/PS-8.0-trunk_dbg/storage/innobase/row/row0ins.cc:3269 #14 0x000055a99de7a37e in row_ins_index_entry_step (node=0x7fd76ae5e6e0, thr=0x7fd76ae5e9c0) at /git/PS-8.0-trunk_dbg/storage/innobase/row/row0ins.cc:3403 #15 0x000055a99de7a72c in row_ins (node=0x7fd76ae5e6e0, thr=0x7fd76ae5e9c0) at /git/PS-8.0-trunk_dbg/storage/innobase/row/row0ins.cc:3525 #16 0x000055a99de7ad68 in row_ins_step (thr=0x7fd76ae5e9c0) at /git/PS-8.0-trunk_dbg/storage/innobase/row/row0ins.cc:3691 #17 0x000055a99de9a40a in row_insert_for_mysql_using_ins_graph (mysql_rec=0x7fd76acb2a28 "\376\001\060uf.h", prebuilt=0x7fd76ae5e0b8) at /git/PS-8.0-trunk_dbg/storage/innobase/row/row0mysql.cc:2032 #18 0x000055a99de9aa71 in row_insert_for_mysql (mysql_rec=0x7fd76acb2a28 "\376\001\060uf.h", prebuilt=0x7fd76ae5e0b8) at /git/PS-8.0-trunk_dbg/storage/innobase/row/row0mysql.cc:2161 #19 0x000055a99dcb97a2 in ha_innobase::write_row (this=0x7fd76ae97028, record=0x7fd76acb2a28 "\376\001\060uf.h") at /git/PS-8.0-trunk_dbg/storage/innobase/handler/ha_innodb.cc:8313 #20 0x000055a99c503c9d in handler::ha_write_row (this=0x7fd76ae97028, buf=0x7fd76acb2a28 "\376\001\060uf.h") at /git/PS-8.0-trunk_dbg/sql/handler.cc:7828 #21 0x000055a99c82bc6b in write_record (thd=0x7fd76ac24000, table=0x7fd76ac40a20, info=0x7fd79e0efc90, update=0x7fd79e0efd10) at /git/PS-8.0-trunk_dbg/sql/sql_insert.cc:1841 #22 0x000055a99c828233 in Sql_cmd_insert_values::execute_inner (this=0x7fd76ac71140, thd=0x7fd76ac24000) at /git/PS-8.0-trunk_dbg/sql/sql_insert.cc:614 #23 0x000055a99c8e12f3 in Sql_cmd_dml::execute (this=0x7fd76ac71140, thd=0x7fd76ac24000) at /git/PS-8.0-trunk_dbg/sql/sql_select.cc:555 #24 0x000055a99c87dac6 in mysql_execute_command (thd=0x7fd76ac24000, first_level=true) at /git/PS-8.0-trunk_dbg/sql/sql_parse.cc:3375 #25 0x000055a99c883a07 in mysql_parse (thd=0x7fd76ac24000, parser_state=0x7fd79e0f12a0, update_userstat=false) at /git/PS-8.0-trunk_dbg/sql/sql_parse.cc:5143 #26 0x000055a99c878b4f in dispatch_command (thd=0x7fd76ac24000, com_data=0x7fd79e0f1c70, command=COM_QUERY) at /git/PS-8.0-trunk_dbg/sql/sql_parse.cc:1654 #27 0x000055a99c87733e in do_command (thd=0x7fd76ac24000) at /git/PS-8.0-trunk_dbg/sql/sql_parse.cc:1262 #28 0x000055a99ca28bf0 in handle_connection (arg=0x7fd74cf42a30) at /git/PS-8.0-trunk_dbg/sql/conn_handler/connection_handler_per_thread.cc:317 #29 0x000055a99dbbcf20 in pfs_spawn_thread (arg=0x7fd74ccbb120) at /git/PS-8.0-trunk_dbg/storage/perfschema/pfs.cc:2836 #30 0x00007fd79fd376db in start_thread (arg=0x7fd79e0f2700) at pthread_create.c:463 #31 0x00007fd79e21488f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

On PS 8.0.12 but not on PS 5.7.23 and is not usable on upstream.

Note that I have seen similar assertions with some regularity. https://bugs.mysql.com/bug.php?id=88279 (fixed) looks somewhat similar.

 

Environment

None

has to be done after

Smart Checklist

Activity

Show:

Peter Schwaller December 17, 2018 at 1:02 PM

Deemed blocker during 8.0 triage meeting.

roel.vandepaar December 15, 2018 at 2:36 AM

Thank you &

Laurynas Biveinis December 14, 2018 at 2:04 PM

VARBINARY(>1), no ROW_FORMAT=COMPRESSED required, and Zsolt's analysis indicate that this is indeed serious

roel.vandepaar December 14, 2018 at 6:01 AM

ROW_FORMAT=COMPRESSED
Not required

Satya Bodapati December 14, 2018 at 5:59 AM

The core observation here is "VARBINARY" datatype. It looks similar to me.

Blocker or not, I will leave it to management

Done

Details

Assignee

Reporter

Time tracking

1d 40m logged

Fix versions

Affects versions

Priority

Smart Checklist

Created November 16, 2018 at 1:08 AM
Updated March 6, 2024 at 12:41 PM
Resolved December 17, 2018 at 3:07 PM