Bug #95269 binlog_row_image=minimal causes assertion failure
Submitted: 7 May 2019 2:22 Modified: 7 May 2019 8:03
Reporter: Song Libing Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Replication Severity:S3 (Non-critical)
Version:8.0.16 OS:Any
Assigned to: CPU Architecture:Any

[7 May 2019 2:22] Song Libing
Description:
mysql-8.0/sql/field.cc:7193: virtual type_conversion_status Field_bl
ob::store(const char *, size_t, const CHARSET_INFO *): Assertion `!table || (!table->write_set
 || bitmap_is_set(table->write_set, field_index)) || (current_thd && current_thd->rli_slave)' 
failed.                                                                                      
02:16:04 UTC - mysqld got signal 6 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
Thread pointer: 0x62600027f100
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 = 7f1d7ddd4c00 thread_stack 0xd2000
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld() [0x3867d4d]
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld(my_print_stacktrace(unsigned char*
, unsigned long)+0xe4) [0x8b5dd24]                                                           
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld(handle_fatal_signal+0x422) [0x4715
4b2]                                                                                         
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12dd0) [0x7f1da4431dd0]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7) [0x7f1da39a8077]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x121) [0x7f1da3989535]
/lib/x86_64-linux-gnu/libc.so.6(+0x2240f) [0x7f1da398940f]
/lib/x86_64-linux-gnu/libc.so.6(+0x32142) [0x7f1da3999142]
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld(Field_blob::store(char const*, uns
igned long, CHARSET_INFO const*)+0xee5) [0x4ca1835]                                          
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld(Item::save_in_field_inner(Field*, 
bool)+0x2204) [0x4f55fc4]                                                                    
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld(Item::save_in_field(Field*, bool)+
0x314) [0x4ee1cd4]                                                                           
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld(update_generated_read_fields(unsig
ned char*, TABLE*, unsigned int)+0x88e) [0x4523dfe]                                          
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld(handler::ha_rnd_next(unsigned char
*)+0xef1) [0x4d96a61]                                                                        
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld(TableScanIterator::Read()+0x199) [
0x3b236c9]                                                                                   
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld(Sql_cmd_delete::delete_from_single
_table(THD*)+0x646e) [0x3d9276e]                                                             
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld(Sql_cmd_dml::execute(THD*)+0x1c2b)
 [0x4163c0b]                                                                                 
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld(mysql_execute_command(THD*, bool)+
0x5abc) [0x3f8139c]                                                                          
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld(mysql_parse(THD*, Parser_state*)+0
x28c2) [0x3f72f72]                                                                           
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld(dispatch_command(THD*, COM_DATA co
nst*, enum_server_command)+0x6f70) [0x3f63340]                                               
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld(do_command(THD*)+0x13a4) [0x3f6ca8
4]                                                                                           
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld() [0x46cb1e4]
/home/libing/work/mysql-8.0/runtime_output_directory/mysqld() [0xa59b087]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x8164) [0x7f1da4427164]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7f1da3a81def]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (60600100fc08): DELETE FROM t1
Connection ID (thread ID): 13
Status: NOT_KILLED

How to repeat:
 ./mtr rpl.rpl_gis_ddl --mysqld=--binlog-format=row --mysqld=--binlog-row-image=minimal        
 ./mtr rpl.rpl_window_functions --mysqld=--binlog-format=row --mysqld=--binlog-row-image=minimal
[7 May 2019 8:03] MySQL Verification Team
Hello Libing,

Thank you for the report and feedback.
Observed that 8.0.16 debug build is affected.

regards,
Umesh
[5 Aug 2019 8:10] Erlend Dahl
Posted by developer:
 
Minimized testcase from Jon Olav:

CREATE TABLE t1(col1 TEXT AS (Upper("Assert")));
INSERT INTO t1 VALUES ();
DELETE FROM t1;

There is no assert on 5.7.