[MDEV-26496] Assertion `m_status == DA_ERROR || m_status == DA_OK || m_status == DA_OK_BULK || m_status == DA_EOF_BULK' failed in Diagnostics_area::message Created: 2021-08-29  Updated: 2023-03-03

Status: Open
Project: MariaDB Server
Component/s: Information Schema, Variables
Affects Version/s: 10.6, 10.7
Fix Version/s: 10.6

Type: Bug Priority: Major
Reporter: Roel Van de Paar Assignee: Rucha Deodhar
Resolution: Unresolved Votes: 0
Labels: not-10.2, not-10.3, not-10.4, not-10.5, regression


 Description   

SET SESSION tmp_disk_table_size=2047, big_tables=1;
SELECT table_name FROM information_schema.tables WHERE table_schema='sys' AND table_type='';

Leads to:

10.7.0 05e29e177df243b700392b797e26cae43fd3181e (Debug)

mysqld: /test/10.7_dbg/sql/sql_error.h:1035: const char* Diagnostics_area::message() const: Assertion `m_status == DA_ERROR || m_status == DA_OK || m_status == DA_OK_BULK || m_status == DA_EOF_BULK' failed.

10.7.0 05e29e177df243b700392b797e26cae43fd3181e (Debug)

Core was generated by `/test/MD280821-mariadb-10.7.0-linux-x86_64-dbg/bin/mysqld --no-defaults --core-'.
Program terminated with signal SIGABRT, Aborted.
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
[Current thread is 1 (Thread 0x14c41c14d700 (LWP 4025007))]
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x000014c41ff0c859 in __GI_abort () at abort.c:79
#2  0x000014c41ff0c729 in __assert_fail_base (fmt=0x14c4200a2588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x562e274694d0 "m_status == DA_ERROR || m_status == DA_OK || m_status == DA_OK_BULK || m_status == DA_EOF_BULK", file=0x562e27469478 "/test/10.7_dbg/sql/sql_error.h", line=1035, function=<optimized out>) at assert.c:92
#3  0x000014c41ff1df36 in __GI___assert_fail (assertion=assertion@entry=0x562e274694d0 "m_status == DA_ERROR || m_status == DA_OK || m_status == DA_OK_BULK || m_status == DA_EOF_BULK", file=file@entry=0x562e27469478 "/test/10.7_dbg/sql/sql_error.h", line=line@entry=1035, function=function@entry=0x562e27469530 "const char* Diagnostics_area::message() const") at assert.c:101
#4  0x0000562e268bce5b in Diagnostics_area::message (this=0x14c3cc006c30) at /test/10.7_dbg/sql/sql_error.h:1035
#5  get_schema_tables_record (thd=0x14c3cc000db8, tables=0x14c3cc03cd40, table=0x14c3cc019fa0, res=<optimized out>, db_name=<optimized out>, table_name=<optimized out>) at /test/10.7_dbg/sql/sql_show.cc:5762
#6  0x0000562e268a2929 in fill_schema_table_by_open (thd=thd@entry=0x14c3cc000db8, mem_root=mem_root@entry=0x14c41c149f40, is_show_fields_or_keys=is_show_fields_or_keys@entry=false, table=table@entry=0x14c3cc019fa0, schema_table=schema_table@entry=0x562e27d1bdc0 <schema_tables+2176>, orig_db_name=orig_db_name@entry=0x14c3cc02dd00, orig_table_name=0x14c3cc02ef50, open_tables_state_backup=0x14c41c149f80, can_deadlock=false) at /test/10.7_dbg/sql/sql_show.cc:4705
#7  0x0000562e268c74b8 in get_all_tables (thd=0x14c3cc000db8, tables=0x14c3cc014398, cond=<optimized out>) at /test/10.7_dbg/sql/sql_show.cc:5315
#8  0x0000562e268c8b43 in get_schema_tables_result (join=join@entry=0x14c3cc016788, executed_place=executed_place@entry=PROCESSED_BY_JOIN_EXEC) at /test/10.7_dbg/sql/sql_show.cc:8837
#9  0x0000562e2689abcf in JOIN::exec_inner (this=this@entry=0x14c3cc016788) at /test/10.7_dbg/sql/sql_string.h:682
#10 0x0000562e2689b870 in JOIN::exec (this=this@entry=0x14c3cc016788) at /test/10.7_dbg/sql/sql_select.cc:4513
#11 0x0000562e2689984e in mysql_select (thd=thd@entry=0x14c3cc000db8, tables=0x14c3cc014398, fields=@0x14c3cc014038: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x14c3cc014338, last = 0x14c3cc014338, elements = 1}, <No data fields>}, conds=0x14c3cc015220, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2684619520, result=0x14c3cc016760, unit=0x14c3cc005120, select_lex=0x14c3cc013d98) at /test/10.7_dbg/sql/sql_select.cc:4991
#12 0x0000562e26899b03 in handle_select (thd=thd@entry=0x14c3cc000db8, lex=lex@entry=0x14c3cc005058, result=result@entry=0x14c3cc016760, setup_tables_done_option=setup_tables_done_option@entry=0) at /test/10.7_dbg/sql/sql_select.cc:545
#13 0x0000562e267fb7ee in execute_sqlcom_select (thd=thd@entry=0x14c3cc000db8, all_tables=0x14c3cc014398) at /test/10.7_dbg/sql/sql_parse.cc:6256
#14 0x0000562e26808678 in mysql_execute_command (thd=thd@entry=0x14c3cc000db8, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /test/10.7_dbg/sql/sql_parse.cc:3946
#15 0x0000562e267f4b83 in mysql_parse (thd=thd@entry=0x14c3cc000db8, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x14c41c14c400) at /test/10.7_dbg/sql/sql_parse.cc:8030
#16 0x0000562e26803788 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x14c3cc000db8, packet=packet@entry=0x14c3cc00b739 "SELECT table_name FROM information_schema.tables WHERE table_schema='sys' AND table_type=''", packet_length=packet_length@entry=91, blocking=blocking@entry=true) at /test/10.7_dbg/sql/sql_class.h:1358
#17 0x0000562e26806b90 in do_command (thd=0x14c3cc000db8, blocking=blocking@entry=true) at /test/10.7_dbg/sql/sql_parse.cc:1404
#18 0x0000562e2697cf2e in do_handle_one_connection (connect=<optimized out>, connect@entry=0x562e2a3ce358, put_in_cache=put_in_cache@entry=true) at /test/10.7_dbg/sql/sql_connect.cc:1418
#19 0x0000562e2697d533 in handle_one_connection (arg=arg@entry=0x562e2a3ce358) at /test/10.7_dbg/sql/sql_connect.cc:1312
#20 0x0000562e26de6586 in pfs_spawn_thread (arg=0x562e2a2f6ee8) at /test/10.7_dbg/storage/perfschema/pfs.cc:2201
#21 0x000014c42041b609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#22 0x000014c420009293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Bug confirmed present in:
MariaDB: 10.6.5 (dbg), 10.7.0 (dbg)

Bug (or feature/syntax) confirmed not present in:
MariaDB: 10.2.41 (dbg), 10.2.41 (opt), 10.3.32 (dbg), 10.3.32 (opt), 10.4.22 (dbg), 10.4.22 (opt), 10.5.13 (dbg), 10.5.13 (opt), 10.6.5 (opt), 10.7.0 (opt)
MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.51 (dbg), 5.6.51 (opt), 5.7.35 (dbg), 5.7.35 (opt), 8.0.26 (dbg), 8.0.26 (opt)



 Comments   
Comment by Roel Van de Paar [ 2021-08-29 ]

Slightly changing the query selection stops the bug from occuring;

10.7.0 05e29e177df243b700392b797e26cae43fd3181e (Debug)

10.7.0-dbg>SELECT * FROM information_schema.tables WHERE table_schema='sys' AND table_type='';
ERROR 1114 (HY000): The table '(temporary)' is full

Which may (or may not) indicate that this bug is alignment based (which may make it more serious and applicable to other situations with larger tmp_disk_table_size sizes).

Generated at Thu Feb 08 09:45:45 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.