Bug #88274 Assertion `!table->in_use->is_error()' failed.
Submitted: 28 Oct 2017 4:24 Modified: 4 Dec 2017 11:28
Reporter: Roel Van de Paar Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: DML Severity:S6 (Debug Builds)
Version:8.0.3 RC OS:Any
Assigned to: CPU Architecture:Any
Tags: debug

[28 Oct 2017 4:24] Roel Van de Paar
Description:
2017-10-28T03:55:17.015837Z 0 [Note] /sda/MS201017-mysql-8.0.3-rc-linux-x86_64-debug/bin/mysqld: ready for connections. Version: '8.0.3-rc-debug-log'  socket: '/sda/MS201017-mysql-8.0.3-rc-linux-x86_64-debug/socket.sock'  port: 16654  MySQL Community Server (GPL)
mysqld: /git/mysql-server_dbg/sql/table.cc:7619: bool update_generated_write_fields(const MY_BITMAP*, TABLE*): Assertion `!table->in_use->is_error()' failed.
03:55:30 UTC - mysqld got signal 6 ;

Core was generated by `/sda/MS201017-mysql-8.0.3-rc-linux-x86_64-debug/bin/mysqld --no-defaults --core'.
Program terminated with signal 6, Aborted.
#0  0x00007f1dc54359b1 in __pthread_kill (threadid=<optimized out>, signo=6) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:61
61	  val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid),
(gdb) bt
#0  0x00007f1dc54359b1 in __pthread_kill (threadid=<optimized out>, signo=6) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:61
#1  0x000000000369e428 in my_write_core (sig=6) at /git/mysql-server_dbg/mysys/stacktrace.cc:291
#2  0x000000000286b8f6 in handle_fatal_signal (sig=6) at /git/mysql-server_dbg/sql/signal_handler.cc:234
#3  <signal handler called>
#4  0x00007f1dc374d1f7 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#5  0x00007f1dc374e8e8 in __GI_abort () at abort.c:90
#6  0x00007f1dc3746266 in __assert_fail_base (fmt=0x7f1dc3898e68 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
    assertion=assertion@entry=0x42fd0b6 "!table->in_use->is_error()", file=file@entry=0x42fb820 "/git/mysql-server_dbg/sql/table.cc", 
    line=line@entry=7619, 
    function=function@entry=0x42ff760 <update_generated_write_fields(st_bitmap const*, TABLE*)::__PRETTY_FUNCTION__> "bool update_generated_write_fields(const MY_BITMAP*, TABLE*)") at assert.c:92
#7  0x00007f1dc3746312 in __GI___assert_fail (assertion=0x42fd0b6 "!table->in_use->is_error()", 
    file=0x42fb820 "/git/mysql-server_dbg/sql/table.cc", line=7619, 
    function=0x42ff760 <update_generated_write_fields(st_bitmap const*, TABLE*)::__PRETTY_FUNCTION__> "bool update_generated_write_fields(const MY_BITMAP*, TABLE*)") at assert.c:101
#8  0x00000000025df696 in update_generated_write_fields (bitmap=0x7f1d7cc65d70, table=0x7f1d7cc65c20)
    at /git/mysql-server_dbg/sql/table.cc:7619
#9  0x000000000242b0fe in fill_record (thd=0x7f1d7cc19000, table=0x7f1d7cc65c20, fields=..., values=..., bitmap=0x0, 
    insert_into_fields_bitmap=0x0) at /git/mysql-server_dbg/sql/sql_base.cc:10035
#10 0x000000000242b521 in fill_record_n_invoke_before_triggers (thd=0x7f1d7cc19000, optype_info=0x7f1dc59d9e70, fields=..., 
    values=..., table=0x7f1d7cc65c20, event=TRG_EVENT_INSERT, num_fields=2) at /git/mysql-server_dbg/sql/sql_base.cc:10251
#11 0x0000000002c109df in Sql_cmd_insert_values::execute_inner (this=0x7f1d7cc30088, thd=0x7f1d7cc19000)
    at /git/mysql-server_dbg/sql/sql_insert.cc:601
#12 0x0000000002512627 in Sql_cmd_dml::execute (this=0x7f1d7cc30088, thd=0x7f1d7cc19000) at /git/mysql-server_dbg/sql/sql_select.cc:605
#13 0x00000000024bad4d in mysql_execute_command (thd=0x7f1d7cc19000, first_level=true) at /git/mysql-server_dbg/sql/sql_parse.cc:3441
#14 0x00000000024c042b in mysql_parse (thd=0x7f1d7cc19000, parser_state=0x7f1dc59db2f0) at /git/mysql-server_dbg/sql/sql_parse.cc:5414
#15 0x00000000024b68e7 in dispatch_command (thd=0x7f1d7cc19000, com_data=0x7f1dc59dbb80, command=COM_QUERY)
    at /git/mysql-server_dbg/sql/sql_parse.cc:1708
#16 0x00000000024b53f5 in do_command (thd=0x7f1d7cc19000) at /git/mysql-server_dbg/sql/sql_parse.cc:1291
#17 0x000000000285b2d6 in handle_connection (arg=0x7f1db1aeb3c0)
    at /git/mysql-server_dbg/sql/conn_handler/connection_handler_per_thread.cc:328
#18 0x00000000036ec54d in pfs_spawn_thread (arg=0x7f1db1b91620) at /git/mysql-server_dbg/storage/perfschema/pfs.cc:2985
#19 0x00007f1dc5430e25 in start_thread (arg=0x7f1dc59dc700) at pthread_create.c:308
#20 0x00007f1dc381034d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

How to repeat:
CREATE DATABASE test;
USE test;
CREATE TABLE t1 (i CHAR(3), n CHAR(20) CHARACTER SET utf8 GENERATED ALWAYS AS (md5(i)));
INSERT INTO t2 VALUES (3729+0.75);
CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW INSERT/*!INTO*/t1 VALUES (1);
INSERT INTO t1  VALUES (),();
[28 Oct 2017 18:17] MySQL Verification Team
Thank you for the bug report. Verified as described.
[4 Dec 2017 11:28] Jon Stephens
Documented fix in the MySQL 8.0.4 changelog, as follows:

    A trigger containing invalid syntax followed by an INSERT that
    did not specify a column list attempted to insert a new row

Closed.