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

Assertion `item->type() == Item::FIELD_ITEM || (item->type() == Item::REF_ITEM && ((Item_ref *) item)->ref_type() == Item_ref::VIEW_REF)' failed in find_producing_item

Details

    • Bug
    • Status: Confirmed (View Workflow)
    • Major
    • Resolution: Unresolved
    • 10.4(EOL), 10.5, 10.6, 10.11, 11.0(EOL), 11.1(EOL), 11.2(EOL), 11.3(EOL), 11.4
    • 10.5, 10.6, 10.11, 11.4
    • None
    • None

    Description

       SET collation_connection      = utf8mb4_czech_ci ;
       CREATE  VIEW v1 AS select 'a' AS a  ;
       
      prepare stmt from " SELECT  1 FROM v1 WHERE a LIKE collation(CASE 1 WHEN a THEN (convert(default(a) USING utf8mb4))  END)";
      execute stmt;
      

      Version: '10.4.29-MariaDB-debug-log'
      mysqld: /10.4/src/sql/item.cc:7644: Item* find_producing_item(Item*, st_select_lex*): Assertion `item->type() == Item::FIELD_ITEM || (item->type() == Item::REF_ITEM && ((Item_ref *) item)->ref_type() == Item_ref::VIEW_REF)' failed.
      230404 18:07:14 [ERROR] mysqld got signal 6 ;
       
      Server version: 10.4.29-MariaDB-debug-log source revision: 0a6343909fcf8b193a1b517b3a16eabd4ae89a83
       
      /lib/x86_64-linux-gnu/libc.so.6(+0x33fd6)[0x7f01f7ce5fd6]
      sql/item.cc:7647(find_producing_item(Item*, st_select_lex*))[0x556924fe5b29]
      sql/item.cc:7680(Item_field::derived_field_transformer_for_where(THD*, unsigned char*))[0x556924fe6053]
      sql/item.cc:9664(Item_default_value::transform(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x556924ffad2f]
      sql/item_func.cc:465(Item_args::transform_args(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x5569250b3e1b]
      sql/item_func.cc:501(Item_func::transform(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x5569250b4099]
      sql/item_func.cc:465(Item_args::transform_args(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x5569250b3e1b]
      sql/item_func.cc:501(Item_func::transform(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x5569250b4099]
      sql/item_func.cc:465(Item_args::transform_args(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x5569250b3e1b]
      sql/item_func.cc:501(Item_func::transform(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x5569250b4099]
      sql/item_func.cc:465(Item_args::transform_args(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x5569250b3e1b]
      sql/item_func.cc:501(Item_func::transform(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x5569250b4099]
      sql/item_func.cc:465(Item_args::transform_args(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x5569250b3e1b]
      sql/item_func.cc:501(Item_func::transform(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x5569250b4099]
      sql/sql_derived.cc:1366(transform_condition_or_part(THD*, Item*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x5569246cb0e3]
      sql/sql_lex.cc:9856(st_select_lex::pushdown_cond_into_where_clause(THD*, Item*, Item**, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x556924759c61]
      sql/sql_derived.cc:1558(pushdown_cond_for_derived(THD*, Item*, TABLE_LIST*))[0x5569246cbed1]
      sql/sql_select.cc:2177(JOIN::optimize_inner())[0x55692485a49d]
      sql/sql_select.cc:1690(JOIN::optimize())[0x55692485500b]
      sql/sql_select.cc:4797(mysql_select(THD*, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*))[0x5569248761a1]
      sql/sql_select.cc:442(handle_select(THD*, LEX*, select_result*, unsigned long))[0x556924846e84]
      sql/sql_parse.cc:6463(execute_sqlcom_select(THD*, TABLE_LIST*))[0x5569247b35bc]
      sql/sql_parse.cc:3966(mysql_execute_command(THD*))[0x5569247a0d33]
      sql/sql_prepare.cc:5024(Prepared_statement::execute(String*, bool))[0x5569248123f3]
      sql/sql_prepare.cc:4493(Prepared_statement::execute_loop(String*, bool, unsigned char*, unsigned char*))[0x55692480d888]
      sql/sql_prepare.cc:3578(mysql_sql_stmt_execute(THD*))[0x55692480739d]
      sql/sql_parse.cc:3983(mysql_execute_command(THD*))[0x5569247a0d78]
      sql/sql_parse.cc:7998(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x5569247bca1f]
      sql/sql_parse.cc:1860(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55692479305f]
      sql/sql_parse.cc:1378(do_command(THD*))[0x55692478fb94]
      sql/sql_connect.cc:1420(do_handle_one_connection(CONNECT*))[0x556924b9bce5]
      sql/sql_connect.cc:1325(handle_one_connection)[0x556924b9b589]
      perfschema/pfs.cc:1871(pfs_spawn_thread)[0x55692583d3e0]
      nptl/pthread_create.c:478(start_thread)[0x7f01f8200609]
      /lib/x86_64-linux-gnu/libc.so.6(clone+0x43)[0x7f01f7dd1133]
       
      Query (0x62b000062328): SELECT  1 FROM v1 WHERE a LIKE collation(CASE 1 WHEN a THEN (convert(default(a) USING utf8mb4))  END)
      

      also repeatable with ANALYZE.

      Attachments

        Issue Links

          Activity

            igor I think your patch fix this problem also (if no reassign it do Dmitri or to me)

            sanja Oleksandr Byelkin added a comment - igor I think your patch fix this problem also (if no reassign it do Dmitri or to me)

            Reduced test case

            CREATE VIEW t AS SELECT 1 AS a;
            SELECT a FROM t WHERE CASE WHEN a THEN DEFAULT (a) END=0;
            

            Leads to:

            10.5.27 f41a120298aa17ca80eecaa68614a6addf91ebc6 (Debug)

            mariadbd: /test/10.5_dbg/sql/item.cc:7873: Item* find_producing_item(Item*, st_select_lex*): Assertion `item->type() == Item::FIELD_ITEM || (item->type() == Item::REF_ITEM && ((Item_ref *) item)->ref_type() == Item_ref::VIEW_REF)' failed.
            

            10.5.27 f41a120298aa17ca80eecaa68614a6addf91ebc6 (Debug)

            Core was generated by `/test/MD160824-mariadb-10.5.27-linux-x86_64-dbg/bin/mariadbd --no-defaults --ma'.
            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 0x147a54101700 (LWP 1625421))]
            (gdb) bt
            #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
            #1  0x0000147a55406859 in __GI_abort () at abort.c:79
            #2  0x0000147a55406729 in __assert_fail_base (fmt=0x147a5559c588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x558d676af010 "item->type() == Item::FIELD_ITEM || (item->type() == Item::REF_ITEM && ((Item_ref *) item)->ref_type() == Item_ref::VIEW_REF)", file=0x558d677f5d08 "/test/10.5_dbg/sql/item.cc", line=7873, function=<optimized out>) at assert.c:92
            #3  0x0000147a55417fd6 in __GI___assert_fail (assertion=assertion@entry=0x558d676af010 "item->type() == Item::FIELD_ITEM || (item->type() == Item::REF_ITEM && ((Item_ref *) item)->ref_type() == Item_ref::VIEW_REF)", file=file@entry=0x558d677f5d08 "/test/10.5_dbg/sql/item.cc", line=line@entry=7873, function=function@entry=0x558d677f6b90 "Item* find_producing_item(Item*, st_select_lex*)") at assert.c:101
            #4  0x0000558d66c210a2 in find_producing_item (item=item@entry=0x1479f801ec78, sel=0x1479f80169b8) at /test/10.5_dbg/sql/item.cc:7873
            #5  0x0000558d66c28925 in Item_field::derived_field_transformer_for_where (this=0x1479f801ec78, thd=0x1479f8000d48, arg=<optimized out>) at /test/10.5_dbg/sql/item.cc:7909
            #6  0x0000558d66c223f5 in Item_default_value::transform (this=0x1479f801ec78, thd=0x1479f8000d48, transformer=<optimized out>, args=0x1479f80169b8 "") at /test/10.5_dbg/sql/item.cc:9841
            #7  0x0000558d66ca3e85 in Item_args::transform_args (this=this@entry=0x1479f801ee50, thd=thd@entry=0x1479f8000d48, transformer=<optimized out>, arg=arg@entry=0x1479f80169b8 "") at /test/10.5_dbg/sql/item_func.cc:503
            #8  0x0000558d66ca3f18 in Item_func::transform (this=0x1479f801edc0, thd=0x1479f8000d48, transformer=&virtual table offset 1344, argument=0x1479f80169b8 "") at /test/10.5_dbg/sql/item_func.cc:539
            #9  0x0000558d66ca3e85 in Item_args::transform_args (this=this@entry=0x1479f801efe8, thd=thd@entry=0x1479f8000d48, transformer=<optimized out>, arg=arg@entry=0x1479f80169b8 "") at /test/10.5_dbg/sql/item_func.cc:503
            #10 0x0000558d66ca3f18 in Item_func::transform (this=0x1479f801ef58, thd=0x1479f8000d48, transformer=&virtual table offset 1344, argument=0x1479f80169b8 "") at /test/10.5_dbg/sql/item_func.cc:539
            #11 0x0000558d668e556c in transform_condition_or_part (thd=thd@entry=0x1479f8000d48, cond=cond@entry=0x1479f801ef58, transformer=<optimized out>, arg=arg@entry=0x1479f80169b8 "") at /test/10.5_dbg/sql/sql_derived.cc:1390
            #12 0x0000558d6691a272 in st_select_lex::pushdown_cond_into_where_clause (this=this@entry=0x1479f80169b8, thd=thd@entry=0x1479f8000d48, cond=cond@entry=0x1479f801ef58, remaining_cond=remaining_cond@entry=0x147a540ff668, transformer=<optimized out>, arg=0x1479f80169b8 "") at /test/10.5_dbg/sql/sql_lex.cc:10757
            #13 0x0000558d668e592a in pushdown_cond_for_derived (thd=0x1479f8000d48, cond=<optimized out>, derived=derived@entry=0x1479f80134f0) at /test/10.5_dbg/sql/sql_derived.cc:1583
            #14 0x0000558d669b6434 in JOIN::optimize_inner (this=this@entry=0x1479f8017d48) at /test/10.5_dbg/sql/sql_select.cc:2229
            #15 0x0000558d669b6f3d in JOIN::optimize (this=this@entry=0x1479f8017d48) at /test/10.5_dbg/sql/sql_select.cc:1765
            #16 0x0000558d669b7015 in mysql_select (thd=thd@entry=0x1479f8000d48, tables=0x1479f80134f0, fields=@0x1479f8012ff8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x1479f80134a8, last = 0x1479f80134a8, elements = 1}, <No data fields>}, conds=0x1479f80141b8, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x1479f8017d20, unit=0x1479f8004ef8, select_lex=0x1479f8012e90) at /test/10.5_dbg/sql/sql_select.cc:4900
            #17 0x0000558d669b7b6b in handle_select (thd=thd@entry=0x1479f8000d48, lex=lex@entry=0x1479f8004e30, result=result@entry=0x1479f8017d20, setup_tables_done_option=setup_tables_done_option@entry=0) at /test/10.5_dbg/sql/sql_select.cc:449
            #18 0x0000558d6692ffce in execute_sqlcom_select (thd=thd@entry=0x1479f8000d48, all_tables=0x1479f80134f0) at /test/10.5_dbg/sql/sql_parse.cc:6431
            #19 0x0000558d6693d044 in mysql_execute_command (thd=thd@entry=0x1479f8000d48) at /test/10.5_dbg/sql/sql_parse.cc:4030
            #20 0x0000558d6692930a in mysql_parse (thd=thd@entry=0x1479f8000d48, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x147a541002c0, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.5_dbg/sql/sql_parse.cc:8229
            #21 0x0000558d6693804f in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x1479f8000d48, packet=packet@entry=0x1479f800aa19 "SELECT a FROM t WHERE CASE WHEN a THEN DEFAULT (a) END=0", packet_length=packet_length@entry=56, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.5_dbg/sql/sql_class.h:1329
            #22 0x0000558d6693ad88 in do_command (thd=0x1479f8000d48) at /test/10.5_dbg/sql/sql_parse.cc:1376
            #23 0x0000558d66a87d06 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x558d6a4bfc18, put_in_cache=put_in_cache@entry=true) at /test/10.5_dbg/sql/sql_connect.cc:1417
            #24 0x0000558d66a883a4 in handle_one_connection (arg=arg@entry=0x558d6a4bfc18) at /test/10.5_dbg/sql/sql_connect.cc:1319
            #25 0x0000558d66f08733 in pfs_spawn_thread (arg=0x558d6a4a2988) at /test/10.5_dbg/storage/perfschema/pfs.cc:2201
            #26 0x0000147a55917609 in start_thread (arg=<optimized out>) at pthread_create.c:477
            #27 0x0000147a55503133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
            

            Bug confirmed present in:
            MariaDB: 10.5.27 (dbg), 10.6.19 (dbg), 10.11.9 (dbg), 11.6.0 (dbg)

            ramesh Ramesh Sivaraman added a comment - Reduced test case CREATE VIEW t AS SELECT 1 AS a; SELECT a FROM t WHERE CASE WHEN a THEN DEFAULT (a) END =0; Leads to: 10.5.27 f41a120298aa17ca80eecaa68614a6addf91ebc6 (Debug) mariadbd: /test/10.5_dbg/sql/item.cc:7873: Item* find_producing_item(Item*, st_select_lex*): Assertion `item->type() == Item::FIELD_ITEM || (item->type() == Item::REF_ITEM && ((Item_ref *) item)->ref_type() == Item_ref::VIEW_REF)' failed. 10.5.27 f41a120298aa17ca80eecaa68614a6addf91ebc6 (Debug) Core was generated by `/test/MD160824-mariadb-10.5.27-linux-x86_64-dbg/bin/mariadbd --no-defaults --ma'. 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 0x147a54101700 (LWP 1625421))] (gdb) bt #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x0000147a55406859 in __GI_abort () at abort.c:79 #2 0x0000147a55406729 in __assert_fail_base (fmt=0x147a5559c588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x558d676af010 "item->type() == Item::FIELD_ITEM || (item->type() == Item::REF_ITEM && ((Item_ref *) item)->ref_type() == Item_ref::VIEW_REF)", file=0x558d677f5d08 "/test/10.5_dbg/sql/item.cc", line=7873, function=<optimized out>) at assert.c:92 #3 0x0000147a55417fd6 in __GI___assert_fail (assertion=assertion@entry=0x558d676af010 "item->type() == Item::FIELD_ITEM || (item->type() == Item::REF_ITEM && ((Item_ref *) item)->ref_type() == Item_ref::VIEW_REF)", file=file@entry=0x558d677f5d08 "/test/10.5_dbg/sql/item.cc", line=line@entry=7873, function=function@entry=0x558d677f6b90 "Item* find_producing_item(Item*, st_select_lex*)") at assert.c:101 #4 0x0000558d66c210a2 in find_producing_item (item=item@entry=0x1479f801ec78, sel=0x1479f80169b8) at /test/10.5_dbg/sql/item.cc:7873 #5 0x0000558d66c28925 in Item_field::derived_field_transformer_for_where (this=0x1479f801ec78, thd=0x1479f8000d48, arg=<optimized out>) at /test/10.5_dbg/sql/item.cc:7909 #6 0x0000558d66c223f5 in Item_default_value::transform (this=0x1479f801ec78, thd=0x1479f8000d48, transformer=<optimized out>, args=0x1479f80169b8 "") at /test/10.5_dbg/sql/item.cc:9841 #7 0x0000558d66ca3e85 in Item_args::transform_args (this=this@entry=0x1479f801ee50, thd=thd@entry=0x1479f8000d48, transformer=<optimized out>, arg=arg@entry=0x1479f80169b8 "") at /test/10.5_dbg/sql/item_func.cc:503 #8 0x0000558d66ca3f18 in Item_func::transform (this=0x1479f801edc0, thd=0x1479f8000d48, transformer=&virtual table offset 1344, argument=0x1479f80169b8 "") at /test/10.5_dbg/sql/item_func.cc:539 #9 0x0000558d66ca3e85 in Item_args::transform_args (this=this@entry=0x1479f801efe8, thd=thd@entry=0x1479f8000d48, transformer=<optimized out>, arg=arg@entry=0x1479f80169b8 "") at /test/10.5_dbg/sql/item_func.cc:503 #10 0x0000558d66ca3f18 in Item_func::transform (this=0x1479f801ef58, thd=0x1479f8000d48, transformer=&virtual table offset 1344, argument=0x1479f80169b8 "") at /test/10.5_dbg/sql/item_func.cc:539 #11 0x0000558d668e556c in transform_condition_or_part (thd=thd@entry=0x1479f8000d48, cond=cond@entry=0x1479f801ef58, transformer=<optimized out>, arg=arg@entry=0x1479f80169b8 "") at /test/10.5_dbg/sql/sql_derived.cc:1390 #12 0x0000558d6691a272 in st_select_lex::pushdown_cond_into_where_clause (this=this@entry=0x1479f80169b8, thd=thd@entry=0x1479f8000d48, cond=cond@entry=0x1479f801ef58, remaining_cond=remaining_cond@entry=0x147a540ff668, transformer=<optimized out>, arg=0x1479f80169b8 "") at /test/10.5_dbg/sql/sql_lex.cc:10757 #13 0x0000558d668e592a in pushdown_cond_for_derived (thd=0x1479f8000d48, cond=<optimized out>, derived=derived@entry=0x1479f80134f0) at /test/10.5_dbg/sql/sql_derived.cc:1583 #14 0x0000558d669b6434 in JOIN::optimize_inner (this=this@entry=0x1479f8017d48) at /test/10.5_dbg/sql/sql_select.cc:2229 #15 0x0000558d669b6f3d in JOIN::optimize (this=this@entry=0x1479f8017d48) at /test/10.5_dbg/sql/sql_select.cc:1765 #16 0x0000558d669b7015 in mysql_select (thd=thd@entry=0x1479f8000d48, tables=0x1479f80134f0, fields=@0x1479f8012ff8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x1479f80134a8, last = 0x1479f80134a8, elements = 1}, <No data fields>}, conds=0x1479f80141b8, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x1479f8017d20, unit=0x1479f8004ef8, select_lex=0x1479f8012e90) at /test/10.5_dbg/sql/sql_select.cc:4900 #17 0x0000558d669b7b6b in handle_select (thd=thd@entry=0x1479f8000d48, lex=lex@entry=0x1479f8004e30, result=result@entry=0x1479f8017d20, setup_tables_done_option=setup_tables_done_option@entry=0) at /test/10.5_dbg/sql/sql_select.cc:449 #18 0x0000558d6692ffce in execute_sqlcom_select (thd=thd@entry=0x1479f8000d48, all_tables=0x1479f80134f0) at /test/10.5_dbg/sql/sql_parse.cc:6431 #19 0x0000558d6693d044 in mysql_execute_command (thd=thd@entry=0x1479f8000d48) at /test/10.5_dbg/sql/sql_parse.cc:4030 #20 0x0000558d6692930a in mysql_parse (thd=thd@entry=0x1479f8000d48, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x147a541002c0, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.5_dbg/sql/sql_parse.cc:8229 #21 0x0000558d6693804f in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x1479f8000d48, packet=packet@entry=0x1479f800aa19 "SELECT a FROM t WHERE CASE WHEN a THEN DEFAULT (a) END=0", packet_length=packet_length@entry=56, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.5_dbg/sql/sql_class.h:1329 #22 0x0000558d6693ad88 in do_command (thd=0x1479f8000d48) at /test/10.5_dbg/sql/sql_parse.cc:1376 #23 0x0000558d66a87d06 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x558d6a4bfc18, put_in_cache=put_in_cache@entry=true) at /test/10.5_dbg/sql/sql_connect.cc:1417 #24 0x0000558d66a883a4 in handle_one_connection (arg=arg@entry=0x558d6a4bfc18) at /test/10.5_dbg/sql/sql_connect.cc:1319 #25 0x0000558d66f08733 in pfs_spawn_thread (arg=0x558d6a4a2988) at /test/10.5_dbg/storage/perfschema/pfs.cc:2201 #26 0x0000147a55917609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #27 0x0000147a55503133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Bug confirmed present in: MariaDB: 10.5.27 (dbg), 10.6.19 (dbg), 10.11.9 (dbg), 11.6.0 (dbg)

            For the record, both the original test case and the one from the comment cause fail with "use-after-poison" on a non-debug ASAN build. This stack trace show up from time to time in support cases, and it is usually difficult to reproduce the failure, so I'm putting it here for the JIRA search purposes.

            10.6 a4654eccebc29a17ba6e1a31f0ec9425f2adef4f

            ==1208088==ERROR: AddressSanitizer: use-after-poison on address 0x62b000086390 at pc 0x561b386af048 bp 0x7f4376206290 sp 0x7f4376206288
            READ of size 8 at 0x62b000086390 thread T5
                #0 0x561b386af047 in Item_default_value::cleanup() /data/bld/10.6-rel-asan/sql/item.cc:9728
                #1 0x561b37d9f460 in Item::delete_self() /data/bld/10.6-rel-asan/sql/item.h:2598
                #2 0x561b37d9f460 in Query_arena::free_items() /data/bld/10.6-rel-asan/sql/sql_class.cc:4014
                #3 0x561b37da5a89 in THD::cleanup_after_query() /data/bld/10.6-rel-asan/sql/sql_class.cc:2385
                #4 0x561b37f1b8ff in Prepared_statement::cleanup_stmt(bool) /data/bld/10.6-rel-asan/sql/sql_prepare.cc:4255
                #5 0x561b37f1b8ff in Prepared_statement::execute(String*, bool) /data/bld/10.6-rel-asan/sql/sql_prepare.cc:5296
                #6 0x561b37f1c186 in Prepared_statement::execute_loop(String*, bool, unsigned char*, unsigned char*) /data/bld/10.6-rel-asan/sql/sql_prepare.cc:4670
                #7 0x561b37f1ced2 in mysql_sql_stmt_execute(THD*) /data/bld/10.6-rel-asan/sql/sql_prepare.cc:3696
                #8 0x561b37ed4443 in mysql_execute_command(THD*, bool) /data/bld/10.6-rel-asan/sql/sql_parse.cc:4004
                #9 0x561b37edc789 in mysql_parse(THD*, char*, unsigned int, Parser_state*) /data/bld/10.6-rel-asan/sql/sql_parse.cc:8171
                #10 0x561b37ee472a in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /data/bld/10.6-rel-asan/sql/sql_parse.cc:1897
                #11 0x561b37ee9590 in do_command(THD*, bool) /data/bld/10.6-rel-asan/sql/sql_parse.cc:1410
                #12 0x561b382ab5ee in do_handle_one_connection(CONNECT*, bool) /data/bld/10.6-rel-asan/sql/sql_connect.cc:1417
                #13 0x561b382abeec in handle_one_connection /data/bld/10.6-rel-asan/sql/sql_connect.cc:1319
                #14 0x561b38e96be2 in pfs_spawn_thread /data/bld/10.6-rel-asan/storage/perfschema/pfs.cc:2201
                #15 0x7f437f4a8043 in start_thread nptl/pthread_create.c:442
                #16 0x7f437f52861b in clone3 ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
            

            ==1208337==ERROR: AddressSanitizer: use-after-poison on address 0x6290001a44b8 at pc 0x55f2c0157048 bp 0x7f278f45f120 sp 0x7f278f45f118
            READ of size 8 at 0x6290001a44b8 thread T5
                #0 0x55f2c0157047 in Item_default_value::cleanup() /data/bld/10.6-rel-asan/sql/item.cc:9728
                #1 0x55f2bf847460 in Item::delete_self() /data/bld/10.6-rel-asan/sql/item.h:2598
                #2 0x55f2bf847460 in Query_arena::free_items() /data/bld/10.6-rel-asan/sql/sql_class.cc:4014
                #3 0x55f2bf84da89 in THD::cleanup_after_query() /data/bld/10.6-rel-asan/sql/sql_class.cc:2385
                #4 0x55f2bf9849bb in mysql_parse(THD*, char*, unsigned int, Parser_state*) /data/bld/10.6-rel-asan/sql/sql_parse.cc:8195
                #5 0x55f2bf98c72a in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /data/bld/10.6-rel-asan/sql/sql_parse.cc:1897
                #6 0x55f2bf991590 in do_command(THD*, bool) /data/bld/10.6-rel-asan/sql/sql_parse.cc:1410
                #7 0x55f2bfd535ee in do_handle_one_connection(CONNECT*, bool) /data/bld/10.6-rel-asan/sql/sql_connect.cc:1417
                #8 0x55f2bfd53eec in handle_one_connection /data/bld/10.6-rel-asan/sql/sql_connect.cc:1319
                #9 0x55f2c093ebe2 in pfs_spawn_thread /data/bld/10.6-rel-asan/storage/perfschema/pfs.cc:2201
                #10 0x7f27986a8043 in start_thread nptl/pthread_create.c:442
                #11 0x7f279872861b in clone3 ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
             
            0x6290001a44b8 is located 696 bytes inside of 16368-byte region [0x6290001a4200,0x6290001a81f0)
            allocated by thread T5 here:
                #0 0x7f27992b89cf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
                #1 0x55f2c11b35f3 in my_malloc /data/bld/10.6-rel-asan/mysys/my_malloc.c:91
                #2 0x55f2c11a05d5 in alloc_root /data/bld/10.6-rel-asan/mysys/my_alloc.c:244
                #3 0x55f2bf80855d in Sql_alloc::operator new(unsigned long, st_mem_root*) /data/bld/10.6-rel-asan/sql/sql_alloc.h:37
                #4 0x55f2bf80855d in base_list::push_back(void*, st_mem_root*) /data/bld/10.6-rel-asan/sql/sql_list.h:195
                #5 0x55f2bf80855d in List<Item>::push_back(Item*, st_mem_root*) /data/bld/10.6-rel-asan/sql/sql_list.h:505
                #6 0x55f2bf80855d in setup_fields(THD*, Bounds_checked_array<Item*>, List<Item>&, enum_column_usage, List<Item>*, List<Item>*, bool) /data/bld/10.6-rel-asan/sql/sql_base.cc:7777
                #7 0x55f2bfaac93f in JOIN::prepare(TABLE_LIST*, Item*, unsigned int, st_order*, bool, st_order*, Item*, st_order*, st_select_lex*, st_select_lex_unit*) /data/bld/10.6-rel-asan/sql/sql_select.cc:1498
                #8 0x55f2bfc28109 in st_select_lex_unit::prepare_join(THD*, st_select_lex*, select_result*, unsigned long long, bool) /data/bld/10.6-rel-asan/sql/sql_union.cc:1105
                #9 0x55f2bfc357c7 in st_select_lex_unit::prepare(TABLE_LIST*, select_result*, unsigned long long) /data/bld/10.6-rel-asan/sql/sql_union.cc:1493
                #10 0x55f2bf881d5e in mysql_derived_prepare /data/bld/10.6-rel-asan/sql/sql_derived.cc:840
                #11 0x55f2bf87d60a in mysql_handle_single_derived(LEX*, TABLE_LIST*, unsigned int) /data/bld/10.6-rel-asan/sql/sql_derived.cc:200
                #12 0x55f2bf8e5be1 in LEX::handle_list_of_derived(TABLE_LIST*, unsigned int) /data/bld/10.6-rel-asan/sql/sql_lex.h:4567
                #13 0x55f2bf8e5be1 in st_select_lex::handle_derived(LEX*, unsigned int) /data/bld/10.6-rel-asan/sql/sql_lex.cc:5089
                #14 0x55f2bfaab2e7 in JOIN::prepare(TABLE_LIST*, Item*, unsigned int, st_order*, bool, st_order*, Item*, st_order*, st_select_lex*, st_select_lex_unit*) /data/bld/10.6-rel-asan/sql/sql_select.cc:1382
                #15 0x55f2bfaf6ad7 in mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /data/bld/10.6-rel-asan/sql/sql_select.cc:5151
                #16 0x55f2bfaf7486 in handle_select(THD*, LEX*, select_result*, unsigned long) /data/bld/10.6-rel-asan/sql/sql_select.cc:559
                #17 0x55f2bf95145b in execute_sqlcom_select /data/bld/10.6-rel-asan/sql/sql_parse.cc:6386
                #18 0x55f2bf97ed59 in mysql_execute_command(THD*, bool) /data/bld/10.6-rel-asan/sql/sql_parse.cc:3988
                #19 0x55f2bf984789 in mysql_parse(THD*, char*, unsigned int, Parser_state*) /data/bld/10.6-rel-asan/sql/sql_parse.cc:8171
                #20 0x55f2bf98c72a in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /data/bld/10.6-rel-asan/sql/sql_parse.cc:1897
                #21 0x55f2bf991590 in do_command(THD*, bool) /data/bld/10.6-rel-asan/sql/sql_parse.cc:1410
                #22 0x55f2bfd535ee in do_handle_one_connection(CONNECT*, bool) /data/bld/10.6-rel-asan/sql/sql_connect.cc:1417
                #23 0x55f2bfd53eec in handle_one_connection /data/bld/10.6-rel-asan/sql/sql_connect.cc:1319
                #24 0x55f2c093ebe2 in pfs_spawn_thread /data/bld/10.6-rel-asan/storage/perfschema/pfs.cc:2201
                #25 0x7f27986a8043 in start_thread nptl/pthread_create.c:442
             
            Thread T5 created by T0 here:
                #0 0x7f2799249726 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:207
                #1 0x55f2c093ee5f in my_thread_create /data/bld/10.6-rel-asan/storage/perfschema/my_thread.h:52
                #2 0x55f2c093ee5f in pfs_spawn_thread_v1 /data/bld/10.6-rel-asan/storage/perfschema/pfs.cc:2252
                #3 0x55f2bf6aef03 in inline_mysql_thread_create /data/bld/10.6-rel-asan/include/mysql/psi/mysql_thread.h:1139
                #4 0x55f2bf6aef03 in create_thread_to_handle_connection(CONNECT*) /data/bld/10.6-rel-asan/sql/mysqld.cc:6055
                #5 0x55f2bf6ba585 in handle_accepted_socket(st_mysql_socket, st_mysql_socket) /data/bld/10.6-rel-asan/sql/mysqld.cc:6176
                #6 0x55f2bf6bb027 in handle_connections_sockets() /data/bld/10.6-rel-asan/sql/mysqld.cc:6300
                #7 0x55f2bf6bc904 in mysqld_main(int, char**) /data/bld/10.6-rel-asan/sql/mysqld.cc:5950
                #8 0x7f27986461c9 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
             
            SUMMARY: AddressSanitizer: use-after-poison /data/bld/10.6-rel-asan/sql/item.cc:9728 in Item_default_value::cleanup()
            Shadow bytes around the buggy address:
              0x0c528002c840: 00 00 00 00 00 00 f7 00 00 f7 00 00 f7 00 00 00
              0x0c528002c850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              0x0c528002c860: 00 00 00 00 00 00 00 00 00 00 00 00 f7 00 00 f7
              0x0c528002c870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              0x0c528002c880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
            =>0x0c528002c890: 00 00 00 f7 00 00 f7[f7]f7 f7 f7 f7 f7 f7 f7 f7
              0x0c528002c8a0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
              0x0c528002c8b0: f7 f7 00 00 f7 00 00 f7 f7 f7 f7 f7 f7 f7 f7 f7
              0x0c528002c8c0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
              0x0c528002c8d0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
              0x0c528002c8e0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7
            Shadow byte legend (one shadow byte represents 8 application bytes):
              Addressable:           00
              Partially addressable: 01 02 03 04 05 06 07 
              Heap left redzone:       fa
              Freed heap region:       fd
              Stack left redzone:      f1
              Stack mid redzone:       f2
              Stack right redzone:     f3
              Stack after return:      f5
              Stack use after scope:   f8
              Global redzone:          f9
              Global init order:       f6
              Poisoned by user:        f7
              Container overflow:      fc
              Array cookie:            ac
              Intra object redzone:    bb
              ASan internal:           fe
              Left alloca redzone:     ca
              Right alloca redzone:    cb
            ==1208337==ABORTING
            

            elenst Elena Stepanova added a comment - For the record, both the original test case and the one from the comment cause fail with "use-after-poison" on a non-debug ASAN build. This stack trace show up from time to time in support cases, and it is usually difficult to reproduce the failure, so I'm putting it here for the JIRA search purposes. 10.6 a4654eccebc29a17ba6e1a31f0ec9425f2adef4f ==1208088==ERROR: AddressSanitizer: use-after-poison on address 0x62b000086390 at pc 0x561b386af048 bp 0x7f4376206290 sp 0x7f4376206288 READ of size 8 at 0x62b000086390 thread T5 #0 0x561b386af047 in Item_default_value::cleanup() /data/bld/10.6-rel-asan/sql/item.cc:9728 #1 0x561b37d9f460 in Item::delete_self() /data/bld/10.6-rel-asan/sql/item.h:2598 #2 0x561b37d9f460 in Query_arena::free_items() /data/bld/10.6-rel-asan/sql/sql_class.cc:4014 #3 0x561b37da5a89 in THD::cleanup_after_query() /data/bld/10.6-rel-asan/sql/sql_class.cc:2385 #4 0x561b37f1b8ff in Prepared_statement::cleanup_stmt(bool) /data/bld/10.6-rel-asan/sql/sql_prepare.cc:4255 #5 0x561b37f1b8ff in Prepared_statement::execute(String*, bool) /data/bld/10.6-rel-asan/sql/sql_prepare.cc:5296 #6 0x561b37f1c186 in Prepared_statement::execute_loop(String*, bool, unsigned char*, unsigned char*) /data/bld/10.6-rel-asan/sql/sql_prepare.cc:4670 #7 0x561b37f1ced2 in mysql_sql_stmt_execute(THD*) /data/bld/10.6-rel-asan/sql/sql_prepare.cc:3696 #8 0x561b37ed4443 in mysql_execute_command(THD*, bool) /data/bld/10.6-rel-asan/sql/sql_parse.cc:4004 #9 0x561b37edc789 in mysql_parse(THD*, char*, unsigned int, Parser_state*) /data/bld/10.6-rel-asan/sql/sql_parse.cc:8171 #10 0x561b37ee472a in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /data/bld/10.6-rel-asan/sql/sql_parse.cc:1897 #11 0x561b37ee9590 in do_command(THD*, bool) /data/bld/10.6-rel-asan/sql/sql_parse.cc:1410 #12 0x561b382ab5ee in do_handle_one_connection(CONNECT*, bool) /data/bld/10.6-rel-asan/sql/sql_connect.cc:1417 #13 0x561b382abeec in handle_one_connection /data/bld/10.6-rel-asan/sql/sql_connect.cc:1319 #14 0x561b38e96be2 in pfs_spawn_thread /data/bld/10.6-rel-asan/storage/perfschema/pfs.cc:2201 #15 0x7f437f4a8043 in start_thread nptl/pthread_create.c:442 #16 0x7f437f52861b in clone3 ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 ==1208337==ERROR: AddressSanitizer: use-after-poison on address 0x6290001a44b8 at pc 0x55f2c0157048 bp 0x7f278f45f120 sp 0x7f278f45f118 READ of size 8 at 0x6290001a44b8 thread T5 #0 0x55f2c0157047 in Item_default_value::cleanup() /data/bld/10.6-rel-asan/sql/item.cc:9728 #1 0x55f2bf847460 in Item::delete_self() /data/bld/10.6-rel-asan/sql/item.h:2598 #2 0x55f2bf847460 in Query_arena::free_items() /data/bld/10.6-rel-asan/sql/sql_class.cc:4014 #3 0x55f2bf84da89 in THD::cleanup_after_query() /data/bld/10.6-rel-asan/sql/sql_class.cc:2385 #4 0x55f2bf9849bb in mysql_parse(THD*, char*, unsigned int, Parser_state*) /data/bld/10.6-rel-asan/sql/sql_parse.cc:8195 #5 0x55f2bf98c72a in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /data/bld/10.6-rel-asan/sql/sql_parse.cc:1897 #6 0x55f2bf991590 in do_command(THD*, bool) /data/bld/10.6-rel-asan/sql/sql_parse.cc:1410 #7 0x55f2bfd535ee in do_handle_one_connection(CONNECT*, bool) /data/bld/10.6-rel-asan/sql/sql_connect.cc:1417 #8 0x55f2bfd53eec in handle_one_connection /data/bld/10.6-rel-asan/sql/sql_connect.cc:1319 #9 0x55f2c093ebe2 in pfs_spawn_thread /data/bld/10.6-rel-asan/storage/perfschema/pfs.cc:2201 #10 0x7f27986a8043 in start_thread nptl/pthread_create.c:442 #11 0x7f279872861b in clone3 ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81   0x6290001a44b8 is located 696 bytes inside of 16368-byte region [0x6290001a4200,0x6290001a81f0) allocated by thread T5 here: #0 0x7f27992b89cf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x55f2c11b35f3 in my_malloc /data/bld/10.6-rel-asan/mysys/my_malloc.c:91 #2 0x55f2c11a05d5 in alloc_root /data/bld/10.6-rel-asan/mysys/my_alloc.c:244 #3 0x55f2bf80855d in Sql_alloc::operator new(unsigned long, st_mem_root*) /data/bld/10.6-rel-asan/sql/sql_alloc.h:37 #4 0x55f2bf80855d in base_list::push_back(void*, st_mem_root*) /data/bld/10.6-rel-asan/sql/sql_list.h:195 #5 0x55f2bf80855d in List<Item>::push_back(Item*, st_mem_root*) /data/bld/10.6-rel-asan/sql/sql_list.h:505 #6 0x55f2bf80855d in setup_fields(THD*, Bounds_checked_array<Item*>, List<Item>&, enum_column_usage, List<Item>*, List<Item>*, bool) /data/bld/10.6-rel-asan/sql/sql_base.cc:7777 #7 0x55f2bfaac93f in JOIN::prepare(TABLE_LIST*, Item*, unsigned int, st_order*, bool, st_order*, Item*, st_order*, st_select_lex*, st_select_lex_unit*) /data/bld/10.6-rel-asan/sql/sql_select.cc:1498 #8 0x55f2bfc28109 in st_select_lex_unit::prepare_join(THD*, st_select_lex*, select_result*, unsigned long long, bool) /data/bld/10.6-rel-asan/sql/sql_union.cc:1105 #9 0x55f2bfc357c7 in st_select_lex_unit::prepare(TABLE_LIST*, select_result*, unsigned long long) /data/bld/10.6-rel-asan/sql/sql_union.cc:1493 #10 0x55f2bf881d5e in mysql_derived_prepare /data/bld/10.6-rel-asan/sql/sql_derived.cc:840 #11 0x55f2bf87d60a in mysql_handle_single_derived(LEX*, TABLE_LIST*, unsigned int) /data/bld/10.6-rel-asan/sql/sql_derived.cc:200 #12 0x55f2bf8e5be1 in LEX::handle_list_of_derived(TABLE_LIST*, unsigned int) /data/bld/10.6-rel-asan/sql/sql_lex.h:4567 #13 0x55f2bf8e5be1 in st_select_lex::handle_derived(LEX*, unsigned int) /data/bld/10.6-rel-asan/sql/sql_lex.cc:5089 #14 0x55f2bfaab2e7 in JOIN::prepare(TABLE_LIST*, Item*, unsigned int, st_order*, bool, st_order*, Item*, st_order*, st_select_lex*, st_select_lex_unit*) /data/bld/10.6-rel-asan/sql/sql_select.cc:1382 #15 0x55f2bfaf6ad7 in mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /data/bld/10.6-rel-asan/sql/sql_select.cc:5151 #16 0x55f2bfaf7486 in handle_select(THD*, LEX*, select_result*, unsigned long) /data/bld/10.6-rel-asan/sql/sql_select.cc:559 #17 0x55f2bf95145b in execute_sqlcom_select /data/bld/10.6-rel-asan/sql/sql_parse.cc:6386 #18 0x55f2bf97ed59 in mysql_execute_command(THD*, bool) /data/bld/10.6-rel-asan/sql/sql_parse.cc:3988 #19 0x55f2bf984789 in mysql_parse(THD*, char*, unsigned int, Parser_state*) /data/bld/10.6-rel-asan/sql/sql_parse.cc:8171 #20 0x55f2bf98c72a in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /data/bld/10.6-rel-asan/sql/sql_parse.cc:1897 #21 0x55f2bf991590 in do_command(THD*, bool) /data/bld/10.6-rel-asan/sql/sql_parse.cc:1410 #22 0x55f2bfd535ee in do_handle_one_connection(CONNECT*, bool) /data/bld/10.6-rel-asan/sql/sql_connect.cc:1417 #23 0x55f2bfd53eec in handle_one_connection /data/bld/10.6-rel-asan/sql/sql_connect.cc:1319 #24 0x55f2c093ebe2 in pfs_spawn_thread /data/bld/10.6-rel-asan/storage/perfschema/pfs.cc:2201 #25 0x7f27986a8043 in start_thread nptl/pthread_create.c:442   Thread T5 created by T0 here: #0 0x7f2799249726 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:207 #1 0x55f2c093ee5f in my_thread_create /data/bld/10.6-rel-asan/storage/perfschema/my_thread.h:52 #2 0x55f2c093ee5f in pfs_spawn_thread_v1 /data/bld/10.6-rel-asan/storage/perfschema/pfs.cc:2252 #3 0x55f2bf6aef03 in inline_mysql_thread_create /data/bld/10.6-rel-asan/include/mysql/psi/mysql_thread.h:1139 #4 0x55f2bf6aef03 in create_thread_to_handle_connection(CONNECT*) /data/bld/10.6-rel-asan/sql/mysqld.cc:6055 #5 0x55f2bf6ba585 in handle_accepted_socket(st_mysql_socket, st_mysql_socket) /data/bld/10.6-rel-asan/sql/mysqld.cc:6176 #6 0x55f2bf6bb027 in handle_connections_sockets() /data/bld/10.6-rel-asan/sql/mysqld.cc:6300 #7 0x55f2bf6bc904 in mysqld_main(int, char**) /data/bld/10.6-rel-asan/sql/mysqld.cc:5950 #8 0x7f27986461c9 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58   SUMMARY: AddressSanitizer: use-after-poison /data/bld/10.6-rel-asan/sql/item.cc:9728 in Item_default_value::cleanup() Shadow bytes around the buggy address: 0x0c528002c840: 00 00 00 00 00 00 f7 00 00 f7 00 00 f7 00 00 00 0x0c528002c850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c528002c860: 00 00 00 00 00 00 00 00 00 00 00 00 f7 00 00 f7 0x0c528002c870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c528002c880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 =>0x0c528002c890: 00 00 00 f7 00 00 f7[f7]f7 f7 f7 f7 f7 f7 f7 f7 0x0c528002c8a0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 0x0c528002c8b0: f7 f7 00 00 f7 00 00 f7 f7 f7 f7 f7 f7 f7 f7 f7 0x0c528002c8c0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 0x0c528002c8d0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 0x0c528002c8e0: f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 f7 Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==1208337==ABORTING
            oleg.smirnov Oleg Smirnov added a comment - - edited

            Test case from MDEV-33805:

             
            CREATE TABLE t1 (c1 INT);
            INSERT INTO t1 VALUES (1);
            CREATE TABLE t2 (c2 INT);
            INSERT INTO t2 VALUES (1);
             
            SET optimizer_switch='derived_merge=off';
             
            EXPLAIN EXTENDED
                 SELECT dt1_c1 FROM 
                   (SELECT c1 AS dt1_c1 FROM t1) AS dt1
                   JOIN 
                   (SELECT 1 AS dt2_c2 FROM t2) AS dt2
                      ON DEFAULT(dt2_c2) BETWEEN dt1_c1 AND dt1_c1;
            

            oleg.smirnov Oleg Smirnov added a comment - - edited Test case from MDEV-33805 :   CREATE TABLE t1 (c1 INT ); INSERT INTO t1 VALUES (1); CREATE TABLE t2 (c2 INT ); INSERT INTO t2 VALUES (1); SET optimizer_switch= 'derived_merge=off' ; EXPLAIN EXTENDED SELECT dt1_c1 FROM ( SELECT c1 AS dt1_c1 FROM t1) AS dt1 JOIN ( SELECT 1 AS dt2_c2 FROM t2) AS dt2 ON DEFAULT (dt2_c2) BETWEEN dt1_c1 AND dt1_c1;
            oleg.smirnov Oleg Smirnov added a comment -

            There is no clarity on how DEFAULT() function must work for views and derived tables, see examples below.

            MariaDB [test]> CREATE OR REPLACE VIEW v1 AS SELECT 1 AS a;
            Query OK, 0 rows affected (0.022 sec)
             
            MariaDB [test]> SELECT a, default(a) FROM v1 ;
            +---+------------+
            | a | default(a) |
            +---+------------+
            | 1 |          0 |
            +---+------------+
            1 row in set (2.803 sec)
            

            I could expect DEFAULT(a) to be either NULL or 1 but it equals 0, why?

            Let's add a table to the view definition:

            MariaDB [test]> CREATE TABLE t1 (a INT default 3);
            Query OK, 0 rows affected (0.041 sec)
             
            MariaDB [test]> CREATE OR REPLACE VIEW v1 AS SELECT 1 AS a FROM t1;
            Query OK, 0 rows affected (0.020 sec)
             
            MariaDB [test]> SELECT a, default(a) FROM v1 ;
            ERROR 1364 (HY000): Field 'a' doesn't have a default value
            

            Now there's an error.

            Let's check the behavior for derived tables.

            MariaDB [test]> CREATE TABLE t1 (a INT DEFAULT 3);
            MariaDB [test]> INSERT INTO t1 VALUES (1),(2),(3);
            MariaDB [test]> SELECT dt1_a, DEFAULT(dt1_a) FROM (SELECT a AS dt1_a FROM t1) AS dt1;
            +-------+----------------+
            | dt1_a | DEFAULT(dt1_a) |
            +-------+----------------+
            |     1 |              3 |
            |     2 |              3 |
            |     3 |              3 |
            +-------+----------------+
            

            Is it legitimate that a derived table field inherits the default value from its producing field?

            OK, let's change `a` to `a + 1` in the derived table to make the field less "inheritable":

            MariaDB [test]> SET optimizer_switch='derived_merge=off';
            Query OK, 0 rows affected (0.001 sec)
             
            MariaDB [test]> SELECT dt1_a, DEFAULT(dt1_a) FROM (SELECT a + 1 AS dt1_a FROM t1) AS dt1;
            +-------+----------------+
            | dt1_a | DEFAULT(dt1_a) |
            +-------+----------------+
            |     2 |           NULL |
            |     3 |           NULL |
            |     4 |           NULL |
            +-------+----------------+
            3 rows in set (2.430 sec)
             
            MariaDB [test]> SET optimizer_switch='derived_merge=on';
            Query OK, 0 rows affected (0.000 sec)
             
            MariaDB [test]> SELECT dt1_a, DEFAULT(dt1_a) FROM (SELECT a + 1 AS dt1_a FROM t1) AS dt1;
            ERROR 1364 (HY000): Field 'dt1_a' doesn't have a default value
            

            Depending on the optimizer switch the query behaves differently, which doesn't look correct.

            oleg.smirnov Oleg Smirnov added a comment - There is no clarity on how DEFAULT() function must work for views and derived tables, see examples below. MariaDB [test]> CREATE OR REPLACE VIEW v1 AS SELECT 1 AS a; Query OK, 0 rows affected (0.022 sec)   MariaDB [test]> SELECT a, default (a) FROM v1 ; + ---+------------+ | a | default (a) | + ---+------------+ | 1 | 0 | + ---+------------+ 1 row in set (2.803 sec) I could expect DEFAULT(a) to be either NULL or 1 but it equals 0, why? Let's add a table to the view definition: MariaDB [test]> CREATE TABLE t1 (a INT default 3); Query OK, 0 rows affected (0.041 sec)   MariaDB [test]> CREATE OR REPLACE VIEW v1 AS SELECT 1 AS a FROM t1; Query OK, 0 rows affected (0.020 sec)   MariaDB [test]> SELECT a, default (a) FROM v1 ; ERROR 1364 (HY000): Field 'a' doesn't have a default value Now there's an error. Let's check the behavior for derived tables. MariaDB [test]> CREATE TABLE t1 (a INT DEFAULT 3); MariaDB [test]> INSERT INTO t1 VALUES (1),(2),(3); MariaDB [test]> SELECT dt1_a, DEFAULT (dt1_a) FROM ( SELECT a AS dt1_a FROM t1) AS dt1; + -------+----------------+ | dt1_a | DEFAULT (dt1_a) | + -------+----------------+ | 1 | 3 | | 2 | 3 | | 3 | 3 | + -------+----------------+ Is it legitimate that a derived table field inherits the default value from its producing field? OK, let's change `a` to `a + 1` in the derived table to make the field less "inheritable": MariaDB [test]> SET optimizer_switch= 'derived_merge=off' ; Query OK, 0 rows affected (0.001 sec)   MariaDB [test]> SELECT dt1_a, DEFAULT (dt1_a) FROM ( SELECT a + 1 AS dt1_a FROM t1) AS dt1; + -------+----------------+ | dt1_a | DEFAULT (dt1_a) | + -------+----------------+ | 2 | NULL | | 3 | NULL | | 4 | NULL | + -------+----------------+ 3 rows in set (2.430 sec)   MariaDB [test]> SET optimizer_switch= 'derived_merge=on' ; Query OK, 0 rows affected (0.000 sec)   MariaDB [test]> SELECT dt1_a, DEFAULT (dt1_a) FROM ( SELECT a + 1 AS dt1_a FROM t1) AS dt1; ERROR 1364 (HY000): Field 'dt1_a' doesn't have a default value Depending on the optimizer switch the query behaves differently, which doesn't look correct.
            elenst Elena Stepanova added a comment - - edited

            Similar (but not quite the same) assertion in similar conditions:

            CREATE TABLE t (f char(128));
            INSERT INTO t VALUES ('foo'),('bar');
            CREATE ALGORITHM=TEMPTABLE VIEW v AS SELECT f FROM t GROUP BY f;
            SELECT * FROM v WHERE IF(f='foo','',DEFAULT(f));
             
            # Cleanup
            DROP VIEW v;
            DROP TABLE t;
            

            10.5 b138f428ea2d3496a3a5a2212c424f8218547ef1

            mariadbd: /data/bld/10.5-asan/sql/sql_lex.cc:11067: Field_pair* get_corresponding_field_pair(Item*, List<Field_pair>): Assertion `item->type() == Item::FIELD_ITEM || (item->type() == Item::REF_ITEM && ((((Item_ref *) item)->ref_type() == Item_ref::VIEW_REF) || (((Item_ref *) item)->ref_type() == Item_ref::REF)))' failed.
            241013 20:21:58 [ERROR] mysqld got signal 6 ;
             
            #9  0x00007fb7efa53e32 in __GI___assert_fail (assertion=0x55c7dad750e0 "item->type() == Item::FIELD_ITEM || (item->type() == Item::REF_ITEM && ((((Item_ref *) item)->ref_type() == Item_ref::VIEW_REF) || (((Item_ref *) item)->ref_type() == Item_ref::REF)))", file=0x55c7dad62140 "/data/bld/10.5-asan/sql/sql_lex.cc", line=11067, function=0x55c7dad751c0 "Field_pair* get_corresponding_field_pair(Item*, List<Field_pair>)") at ./assert/assert.c:101
            #10 0x000055c7d8b62351 in get_corresponding_field_pair (item=0x62900024a7e8, pair_list=...) at /data/bld/10.5-asan/sql/sql_lex.cc:11067
            #11 0x000055c7d910ebce in find_matching_field_pair (item=0x62900024a7e8, pair_list=...) at /data/bld/10.5-asan/sql/opt_subselect.cc:6856
            #12 0x000055c7d948c548 in Item_field::grouping_field_transformer_for_where (this=0x62900024a7e8, thd=0x62b000069218, arg=0x62b00003c058 "") at /data/bld/10.5-asan/sql/item.cc:7939
            #13 0x000055c7d94a01be in Item_default_value::transform (this=0x62900024a7e8, thd=0x62b000069218, transformer=&virtual Item::grouping_field_transformer_for_where(THD*, unsigned char*), args=0x62b00003c058 "") at /data/bld/10.5-asan/sql/item.cc:9841
            #14 0x000055c7d95519e5 in Item_args::transform_args (this=0x62900024a9c8, thd=0x62b000069218, transformer=&virtual table offset 1352, arg=0x62b00003c058 "") at /data/bld/10.5-asan/sql/item_func.cc:503
            #15 0x000055c7d9551c76 in Item_func::transform (this=0x62900024a938, thd=0x62b000069218, transformer=&virtual table offset 1352, argument=0x62b00003c058 "") at /data/bld/10.5-asan/sql/item_func.cc:539
            #16 0x000055c7d8acb2be in transform_condition_or_part (thd=0x62b000069218, cond=0x62900024a938, transformer=&virtual table offset 1352, arg=0x62b00003c058 "") at /data/bld/10.5-asan/sql/sql_derived.cc:1390
            #17 0x000055c7d8b60f8a in st_select_lex::pushdown_cond_into_where_clause (this=0x62b00003c058, thd=0x62b000069218, cond=0x62900024a938, remaining_cond=0x7fb7e629e130, transformer=&virtual table offset 1344, arg=0x62b00003c058 "") at /data/bld/10.5-asan/sql/sql_lex.cc:10803
            #18 0x000055c7d8acc044 in pushdown_cond_for_derived (thd=0x62b000069218, cond=0x62b000039878, derived=0x62b000038990) at /data/bld/10.5-asan/sql/sql_derived.cc:1583
            #19 0x000055c7d8c6b4ba in JOIN::optimize_inner (this=0x629000249238) at /data/bld/10.5-asan/sql/sql_select.cc:2231
            #20 0x000055c7d8c662e1 in JOIN::optimize (this=0x629000249238) at /data/bld/10.5-asan/sql/sql_select.cc:1765
            #21 0x000055c7d8c873a4 in mysql_select (thd=0x62b000069218, tables=0x62b000038990, fields=..., conds=0x62b000039878, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x62b00003df28, unit=0x62b00006d3d0, select_lex=0x62b000038300) at /data/bld/10.5-asan/sql/sql_select.cc:4902
            #22 0x000055c7d8c57894 in handle_select (thd=0x62b000069218, lex=0x62b00006d308, result=0x62b00003df28, setup_tables_done_option=0) at /data/bld/10.5-asan/sql/sql_select.cc:449
            #23 0x000055c7d8bbe3ef in execute_sqlcom_select (thd=0x62b000069218, all_tables=0x62b000038990) at /data/bld/10.5-asan/sql/sql_parse.cc:6438
            #24 0x000055c7d8bac831 in mysql_execute_command (thd=0x62b000069218) at /data/bld/10.5-asan/sql/sql_parse.cc:4030
            #25 0x000055c7d8bc91fd in mysql_parse (thd=0x62b000069218, rawbuf=0x62b000038238 "SELECT * FROM v WHERE IF(f='foo','',DEFAULT(f))", length=47, parser_state=0x7fb7e629fc10, is_com_multi=false, is_next_command=false) at /data/bld/10.5-asan/sql/sql_parse.cc:8236
            #26 0x000055c7d8b9e4e3 in dispatch_command (command=COM_QUERY, thd=0x62b000069218, packet=0x629000235219 "SELECT * FROM v WHERE IF(f='foo','',DEFAULT(f))", packet_length=47, is_com_multi=false, is_next_command=false) at /data/bld/10.5-asan/sql/sql_parse.cc:1892
            #27 0x000055c7d8b9ae76 in do_command (thd=0x62b000069218) at /data/bld/10.5-asan/sql/sql_parse.cc:1376
            #28 0x000055c7d8ff4a88 in do_handle_one_connection (connect=0x608000002ab8, put_in_cache=true) at /data/bld/10.5-asan/sql/sql_connect.cc:1417
            #29 0x000055c7d8ff444b in handle_one_connection (arg=0x608000002a38) at /data/bld/10.5-asan/sql/sql_connect.cc:1319
            #30 0x000055c7d9c530f6 in pfs_spawn_thread (arg=0x615000005318) at /data/bld/10.5-asan/storage/perfschema/pfs.cc:2201
            #31 0x00007fb7efaa8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
            #32 0x00007fb7efb2861c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
            

            It started happening recently, some time between 405613ebb5f and cf202decde4.

            elenst Elena Stepanova added a comment - - edited Similar (but not quite the same) assertion in similar conditions: CREATE TABLE t (f char (128)); INSERT INTO t VALUES ( 'foo' ),( 'bar' ); CREATE ALGORITHM=TEMPTABLE VIEW v AS SELECT f FROM t GROUP BY f; SELECT * FROM v WHERE IF (f= 'foo' , '' , DEFAULT (f));   # Cleanup DROP VIEW v; DROP TABLE t; 10.5 b138f428ea2d3496a3a5a2212c424f8218547ef1 mariadbd: /data/bld/10.5-asan/sql/sql_lex.cc:11067: Field_pair* get_corresponding_field_pair(Item*, List<Field_pair>): Assertion `item->type() == Item::FIELD_ITEM || (item->type() == Item::REF_ITEM && ((((Item_ref *) item)->ref_type() == Item_ref::VIEW_REF) || (((Item_ref *) item)->ref_type() == Item_ref::REF)))' failed. 241013 20:21:58 [ERROR] mysqld got signal 6 ;   #9 0x00007fb7efa53e32 in __GI___assert_fail (assertion=0x55c7dad750e0 "item->type() == Item::FIELD_ITEM || (item->type() == Item::REF_ITEM && ((((Item_ref *) item)->ref_type() == Item_ref::VIEW_REF) || (((Item_ref *) item)->ref_type() == Item_ref::REF)))", file=0x55c7dad62140 "/data/bld/10.5-asan/sql/sql_lex.cc", line=11067, function=0x55c7dad751c0 "Field_pair* get_corresponding_field_pair(Item*, List<Field_pair>)") at ./assert/assert.c:101 #10 0x000055c7d8b62351 in get_corresponding_field_pair (item=0x62900024a7e8, pair_list=...) at /data/bld/10.5-asan/sql/sql_lex.cc:11067 #11 0x000055c7d910ebce in find_matching_field_pair (item=0x62900024a7e8, pair_list=...) at /data/bld/10.5-asan/sql/opt_subselect.cc:6856 #12 0x000055c7d948c548 in Item_field::grouping_field_transformer_for_where (this=0x62900024a7e8, thd=0x62b000069218, arg=0x62b00003c058 "") at /data/bld/10.5-asan/sql/item.cc:7939 #13 0x000055c7d94a01be in Item_default_value::transform (this=0x62900024a7e8, thd=0x62b000069218, transformer=&virtual Item::grouping_field_transformer_for_where(THD*, unsigned char*), args=0x62b00003c058 "") at /data/bld/10.5-asan/sql/item.cc:9841 #14 0x000055c7d95519e5 in Item_args::transform_args (this=0x62900024a9c8, thd=0x62b000069218, transformer=&virtual table offset 1352, arg=0x62b00003c058 "") at /data/bld/10.5-asan/sql/item_func.cc:503 #15 0x000055c7d9551c76 in Item_func::transform (this=0x62900024a938, thd=0x62b000069218, transformer=&virtual table offset 1352, argument=0x62b00003c058 "") at /data/bld/10.5-asan/sql/item_func.cc:539 #16 0x000055c7d8acb2be in transform_condition_or_part (thd=0x62b000069218, cond=0x62900024a938, transformer=&virtual table offset 1352, arg=0x62b00003c058 "") at /data/bld/10.5-asan/sql/sql_derived.cc:1390 #17 0x000055c7d8b60f8a in st_select_lex::pushdown_cond_into_where_clause (this=0x62b00003c058, thd=0x62b000069218, cond=0x62900024a938, remaining_cond=0x7fb7e629e130, transformer=&virtual table offset 1344, arg=0x62b00003c058 "") at /data/bld/10.5-asan/sql/sql_lex.cc:10803 #18 0x000055c7d8acc044 in pushdown_cond_for_derived (thd=0x62b000069218, cond=0x62b000039878, derived=0x62b000038990) at /data/bld/10.5-asan/sql/sql_derived.cc:1583 #19 0x000055c7d8c6b4ba in JOIN::optimize_inner (this=0x629000249238) at /data/bld/10.5-asan/sql/sql_select.cc:2231 #20 0x000055c7d8c662e1 in JOIN::optimize (this=0x629000249238) at /data/bld/10.5-asan/sql/sql_select.cc:1765 #21 0x000055c7d8c873a4 in mysql_select (thd=0x62b000069218, tables=0x62b000038990, fields=..., conds=0x62b000039878, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x62b00003df28, unit=0x62b00006d3d0, select_lex=0x62b000038300) at /data/bld/10.5-asan/sql/sql_select.cc:4902 #22 0x000055c7d8c57894 in handle_select (thd=0x62b000069218, lex=0x62b00006d308, result=0x62b00003df28, setup_tables_done_option=0) at /data/bld/10.5-asan/sql/sql_select.cc:449 #23 0x000055c7d8bbe3ef in execute_sqlcom_select (thd=0x62b000069218, all_tables=0x62b000038990) at /data/bld/10.5-asan/sql/sql_parse.cc:6438 #24 0x000055c7d8bac831 in mysql_execute_command (thd=0x62b000069218) at /data/bld/10.5-asan/sql/sql_parse.cc:4030 #25 0x000055c7d8bc91fd in mysql_parse (thd=0x62b000069218, rawbuf=0x62b000038238 "SELECT * FROM v WHERE IF(f='foo','',DEFAULT(f))", length=47, parser_state=0x7fb7e629fc10, is_com_multi=false, is_next_command=false) at /data/bld/10.5-asan/sql/sql_parse.cc:8236 #26 0x000055c7d8b9e4e3 in dispatch_command (command=COM_QUERY, thd=0x62b000069218, packet=0x629000235219 "SELECT * FROM v WHERE IF(f='foo','',DEFAULT(f))", packet_length=47, is_com_multi=false, is_next_command=false) at /data/bld/10.5-asan/sql/sql_parse.cc:1892 #27 0x000055c7d8b9ae76 in do_command (thd=0x62b000069218) at /data/bld/10.5-asan/sql/sql_parse.cc:1376 #28 0x000055c7d8ff4a88 in do_handle_one_connection (connect=0x608000002ab8, put_in_cache=true) at /data/bld/10.5-asan/sql/sql_connect.cc:1417 #29 0x000055c7d8ff444b in handle_one_connection (arg=0x608000002a38) at /data/bld/10.5-asan/sql/sql_connect.cc:1319 #30 0x000055c7d9c530f6 in pfs_spawn_thread (arg=0x615000005318) at /data/bld/10.5-asan/storage/perfschema/pfs.cc:2201 #31 0x00007fb7efaa8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #32 0x00007fb7efb2861c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 It started happening recently, some time between 405613ebb5f and cf202decde4.
            oleg.smirnov Oleg Smirnov added a comment -

            Takeaway from today's Optimizer Call: follow the rule from the DEFAULT() function description, saying "If the column has no default value (and is not NULLABLE - NULLABLE fields have a NULL default), an error is returned" for derived tables and views. I.e., if a DT/view field `a` is NULLable, `DEFAULT(a)` is NULL. If it's not NULLable then `DEFAULT(a)` returns an error. The check can be done at `tie_field()` which is called during the `fix_fields` stage.

            oleg.smirnov Oleg Smirnov added a comment - Takeaway from today's Optimizer Call: follow the rule from the DEFAULT() function description, saying "If the column has no default value (and is not NULLABLE - NULLABLE fields have a NULL default), an error is returned" for derived tables and views. I.e., if a DT/view field `a` is NULLable, `DEFAULT(a)` is NULL. If it's not NULLable then `DEFAULT(a)` returns an error. The check can be done at `tie_field()` which is called during the `fix_fields` stage.
            elenst Elena Stepanova added a comment - - edited

            A non-debug variation of the crash (on a debug build the same assertion fails):

            --source include/have_innodb.inc
             
            CREATE VIEW v AS select ROUTINE_TYPE AS object_type, count(0) AS cnt from information_schema.routines group by object_type union select 'x', count(0) from information_schema.statistics;
            SELECT * FROM v WHERE ELT(DEFAULT(cnt), object_type);
            

            10.5 24e5d564005904bc589fc869ea2f913eec8e6c3a

            #2  <signal handler called>
            #3  0x0000561c1b963587 in Item_field::used_tables (this=0x7f5d180114a8) at /data/bld/10.5-rel/sql/item.cc:3518
            #4  0x0000561c1b955bf4 in Item_field::derived_field_transformer_for_having (this=0x7f5d180114a8, thd=0x7f5d18000c68, arg=0x7f5d18015eb0 "") at /data/bld/10.5-rel/sql/item.cc:7856
            #5  0x0000561c1b94d8e4 in Item_default_value::transform (this=0x7f5d1819f8f0, thd=0x7f5d18000c68, transformer=&virtual Item::derived_field_transformer_for_having(THD*, unsigned char*), args=0x7f5d18015eb0 "") at /data/bld/10.5-rel/sql/item.cc:9843
            #6  0x0000561c1b9b26b9 in Item_args::transform_args (this=this@entry=0x7f5d1819fc08, thd=thd@entry=0x7f5d18000c68, transformer=<optimized out>, arg=arg@entry=0x7f5d18015eb0 "") at /data/bld/10.5-rel/sql/item_func.cc:503
            #7  0x0000561c1b9b271c in Item_func::transform (this=0x7f5d1819fb78, thd=0x7f5d18000c68, transformer=<optimized out>, argument=0x7f5d18015eb0 "") at /data/bld/10.5-rel/sql/item_func.cc:539
            #8  0x0000561c1b6b6330 in pushdown_cond_for_derived (thd=0x7f5d18000c68, cond=<optimized out>, derived=derived@entry=0x7f5d18010d80) at /data/bld/10.5-rel/sql/sql_derived.cc:1594
            #9  0x0000561c1b76e22a in JOIN::optimize_inner (this=this@entry=0x7f5d181075d0) at /data/bld/10.5-rel/sql/sql_select.cc:2234
            #10 0x0000561c1b76eb3a in JOIN::optimize (this=this@entry=0x7f5d181075d0) at /data/bld/10.5-rel/sql/sql_select.cc:1765
            #11 0x0000561c1b76ec03 in mysql_select (thd=thd@entry=0x7f5d18000c68, tables=<optimized out>, fields=..., conds=<optimized out>, og_num=<optimized out>, order=<optimized out>, group=<optimized out>, having=<optimized out>, proc_param=<optimized out>, select_options=<optimized out>, result=<optimized out>, unit=<optimized out>, select_lex=<optimized out>) at /data/bld/10.5-rel/sql/sql_select.cc:4907
            #12 0x0000561c1b76f634 in handle_select (thd=thd@entry=0x7f5d18000c68, lex=lex@entry=0x7f5d18004b98, result=result@entry=0x7f5d181075a8, setup_tables_done_option=setup_tables_done_option@entry=0) at /data/bld/10.5-rel/sql/sql_select.cc:449
            #13 0x0000561c1b6f03a0 in execute_sqlcom_select (thd=thd@entry=0x7f5d18000c68, all_tables=0x7f5d18010d80) at /data/bld/10.5-rel/sql/sql_parse.cc:6451
            #14 0x0000561c1b70092e in mysql_execute_command (thd=thd@entry=0x7f5d18000c68) at /data/bld/10.5-rel/sql/sql_parse.cc:4043
            #15 0x0000561c1b70248c in mysql_parse (thd=0x7f5d18000c68, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /data/bld/10.5-rel/sql/sql_parse.cc:8251
            #16 0x0000561c1b7055a5 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7f5d18000c68, packet=packet@entry=0x7f5d18008109 "SELECT * FROM v WHERE ELT(DEFAULT(cnt), object_type)", packet_length=packet_length@entry=52, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /data/bld/10.5-rel/sql/sql_parse.cc:1992
            #17 0x0000561c1b706f0d in do_command (thd=thd@entry=0x7f5d18000c68) at /data/bld/10.5-rel/sql/sql_parse.cc:1375
            #18 0x0000561c1b81235d in do_handle_one_connection (connect=<optimized out>, put_in_cache=true) at /data/bld/10.5-rel/sql/sql_connect.cc:1386
            #19 0x0000561c1b8127c5 in handle_one_connection (arg=arg@entry=0x561c1f22bad8) at /data/bld/10.5-rel/sql/sql_connect.cc:1298
            #20 0x0000561c1bbc6e44 in pfs_spawn_thread (arg=0x561c1f19b288) at /data/bld/10.5-rel/storage/perfschema/pfs.cc:2201
            #21 0x00007f5d68ca8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
            #22 0x00007f5d68d2861c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
            

            Note that the view structure is a simplified variation derived from a real-life view (from 10.6+ sys schema). Only the query comes from artificially generated tests.

            And another different one:

            SELECT * FROM `sys`.`user_summary` WHERE DEFAULT(`current_memory`) = `user`;
            

            10.6 07b77e862cd36a055a319458fef218eb58467599

            #2  <signal handler called>
            #3  0x000055691789296a in Item_field::register_field_in_read_map (this=0x62b000086320, arg=0x619000097e98) at /data/bld/10.6-rel-asan/sql/item.cc:892
            #4  0x0000556916e1308a in Item::walk (this=0x62b000086320, processor=<optimized out>, walk_subquery=<optimized out>, arg=<optimized out>) at /data/bld/10.6-rel-asan/sql/item.h:2193
            #5  0x00005569178e2b41 in Item_default_value::walk (this=0x62f00002e420, processor=<optimized out>, walk_subquery=<optimized out>, args=<optimized out>) at /data/bld/10.6-rel-asan/sql/item.h:6964
            #6  0x000055691765e942 in Item_cache::walk (this=0x62f000040538, processor=<optimized out>, walk_subquery=<optimized out>, arg=0x619000097e98) at /data/bld/10.6-rel-asan/sql/item.h:7423
            #7  0x0000556916f9f372 in Item_args::walk_args (arg=0x619000097e98, walk_subquery=true, processor=<optimized out>, this=0x62f00002e5b8) at /data/bld/10.6-rel-asan/sql/item.h:2846
            #8  Item_func_or_sum::walk (this=0x62f00002e548, processor=<optimized out>, walk_subquery=<optimized out>, arg=<optimized out>) at /data/bld/10.6-rel-asan/sql/item.h:5688
            #9  0x000055691783d522 in find_all_keys (found_rows=0x613000021070, pq=0x0, tempfile=0x7f724a513e00, buffpek_pointers=0x7f724a513f30, fs_info=0x613000020f00, select=0x62f000040658, param=0x7f724a513d00, thd=0x62b00007e218) at /data/bld/10.6-rel-asan/sql/filesort.cc:894
            #10 filesort (thd=thd@entry=0x62b00007e218, table=table@entry=0x619000097e98, filesort=filesort@entry=0x62f0000423c8, tracker=<optimized out>, join=join@entry=0x62f0000278f0, first_table_bit=<optimized out>) at /data/bld/10.6-rel-asan/sql/filesort.cc:356
            #11 0x00005569171d605c in create_sort_index (thd=0x62b00007e218, join=0x62f0000278f0, tab=tab@entry=0x62f00003e200, fsort=0x62f0000423c8, fsort@entry=0x0) at /data/bld/10.6-rel-asan/sql/sql_select.cc:25929
            #12 0x00005569171d6a85 in st_join_table::sort_table (this=this@entry=0x62f00003e200) at /data/bld/10.6-rel-asan/sql/sql_select.cc:23438
            #13 0x00005569171d6cfb in join_init_read_record (tab=0x62f00003e200) at /data/bld/10.6-rel-asan/sql/sql_select.cc:23377
            #14 0x0000556917190236 in sub_select (join=0x62f0000278f0, join_tab=0x62f00003e200, end_of_records=<optimized out>) at /data/bld/10.6-rel-asan/sql/sql_select.cc:22385
            #15 0x0000556917235144 in do_select (procedure=<optimized out>, join=0x62f0000278f0) at /data/bld/10.6-rel-asan/sql/sql_select.cc:21911
            #16 JOIN::exec_inner (this=this@entry=0x62f0000278f0) at /data/bld/10.6-rel-asan/sql/sql_select.cc:4939
            #17 0x00005569172368a8 in JOIN::exec (this=this@entry=0x62f0000278f0) at /data/bld/10.6-rel-asan/sql/sql_select.cc:4717
            #18 0x000055691722eebe in mysql_select (thd=thd@entry=0x62b00007e218, tables=<optimized out>, fields=..., conds=0x0, og_num=2, order=0x6290001b4a48, group=<optimized out>, having=<optimized out>, proc_param=<optimized out>, select_options=<optimized out>, result=<optimized out>, unit=<optimized out>, select_lex=<optimized out>) at /data/bld/10.6-rel-asan/sql/sql_select.cc:5196
            #19 0x0000556916fb480f in mysql_derived_fill (thd=<optimized out>, lex=<optimized out>, derived=<optimized out>) at /data/bld/10.6-rel-asan/sql/sql_derived.cc:1291
            #20 0x0000556916fb341e in mysql_handle_single_derived (lex=0x62b000082370, derived=derived@entry=0x62b000085ba8, phases=phases@entry=96) at /data/bld/10.6-rel-asan/sql/sql_derived.cc:200
            #21 0x000055691718f900 in st_join_table::preread_init (this=this@entry=0x62f0000487a0) at /data/bld/10.6-rel-asan/sql/sql_select.cc:15190
            #22 0x000055691718fedc in sub_select (join=0x62f0000229b8, join_tab=0x62f0000487a0, end_of_records=<optimized out>) at /data/bld/10.6-rel-asan/sql/sql_select.cc:22346
            #23 0x0000556917235144 in do_select (procedure=<optimized out>, join=0x62f0000229b8) at /data/bld/10.6-rel-asan/sql/sql_select.cc:21911
            #24 JOIN::exec_inner (this=this@entry=0x62f0000229b8) at /data/bld/10.6-rel-asan/sql/sql_select.cc:4939
            #25 0x00005569172368a8 in JOIN::exec (this=this@entry=0x62f0000229b8) at /data/bld/10.6-rel-asan/sql/sql_select.cc:4717
            #26 0x000055691722eebe in mysql_select (thd=thd@entry=0x62b00007e218, tables=<optimized out>, fields=..., conds=0x62b0000866b0, og_num=0, order=0x0, group=<optimized out>, having=<optimized out>, proc_param=<optimized out>, select_options=<optimized out>, result=<optimized out>, unit=<optimized out>, select_lex=<optimized out>) at /data/bld/10.6-rel-asan/sql/sql_select.cc:5196
            #27 0x00005569172309d7 in handle_select (thd=thd@entry=0x62b00007e218, lex=lex@entry=0x62b000082370, result=result@entry=0x62f000022988, setup_tables_done_option=setup_tables_done_option@entry=0) at /data/bld/10.6-rel-asan/sql/sql_select.cc:573
            #28 0x000055691708730c in execute_sqlcom_select (thd=thd@entry=0x62b00007e218, all_tables=<optimized out>) at /data/bld/10.6-rel-asan/sql/sql_parse.cc:6421
            #29 0x00005569170b4faa in mysql_execute_command (thd=thd@entry=0x62b00007e218, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/bld/10.6-rel-asan/sql/sql_parse.cc:4013
            #30 0x00005569170ba93a in mysql_parse (thd=thd@entry=0x62b00007e218, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x7f724a516870) at /data/bld/10.6-rel-asan/sql/sql_parse.cc:8208
            #31 0x00005569170c234b in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x62b00007e218, packet=packet@entry=0x62900019f219 "", packet_length=packet_length@entry=75, blocking=blocking@entry=true) at /data/bld/10.6-rel-asan/sql/sql_parse.cc:1908
            #32 0x00005569170c75c7 in do_command (thd=thd@entry=0x62b00007e218, blocking=blocking@entry=true) at /data/bld/10.6-rel-asan/sql/sql_parse.cc:1421
            #33 0x000055691748e64d in do_handle_one_connection (connect=<optimized out>, connect@entry=0x608000002eb8, put_in_cache=put_in_cache@entry=true) at /data/bld/10.6-rel-asan/sql/sql_connect.cc:1386
            #34 0x000055691748ee3d in handle_one_connection (arg=arg@entry=0x608000002eb8) at /data/bld/10.6-rel-asan/sql/sql_connect.cc:1298
            #35 0x000055691807e103 in pfs_spawn_thread (arg=0x617000005b98) at /data/bld/10.6-rel-asan/storage/perfschema/pfs.cc:2201
            #36 0x00007f7253aa8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
            #37 0x00007f7253b2861c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
            

            elenst Elena Stepanova added a comment - - edited A non-debug variation of the crash (on a debug build the same assertion fails): --source include/have_innodb.inc   CREATE VIEW v AS select ROUTINE_TYPE AS object_type, count (0) AS cnt from information_schema.routines group by object_type union select 'x' , count (0) from information_schema. statistics ; SELECT * FROM v WHERE ELT( DEFAULT (cnt), object_type); 10.5 24e5d564005904bc589fc869ea2f913eec8e6c3a #2 <signal handler called> #3 0x0000561c1b963587 in Item_field::used_tables (this=0x7f5d180114a8) at /data/bld/10.5-rel/sql/item.cc:3518 #4 0x0000561c1b955bf4 in Item_field::derived_field_transformer_for_having (this=0x7f5d180114a8, thd=0x7f5d18000c68, arg=0x7f5d18015eb0 "") at /data/bld/10.5-rel/sql/item.cc:7856 #5 0x0000561c1b94d8e4 in Item_default_value::transform (this=0x7f5d1819f8f0, thd=0x7f5d18000c68, transformer=&virtual Item::derived_field_transformer_for_having(THD*, unsigned char*), args=0x7f5d18015eb0 "") at /data/bld/10.5-rel/sql/item.cc:9843 #6 0x0000561c1b9b26b9 in Item_args::transform_args (this=this@entry=0x7f5d1819fc08, thd=thd@entry=0x7f5d18000c68, transformer=<optimized out>, arg=arg@entry=0x7f5d18015eb0 "") at /data/bld/10.5-rel/sql/item_func.cc:503 #7 0x0000561c1b9b271c in Item_func::transform (this=0x7f5d1819fb78, thd=0x7f5d18000c68, transformer=<optimized out>, argument=0x7f5d18015eb0 "") at /data/bld/10.5-rel/sql/item_func.cc:539 #8 0x0000561c1b6b6330 in pushdown_cond_for_derived (thd=0x7f5d18000c68, cond=<optimized out>, derived=derived@entry=0x7f5d18010d80) at /data/bld/10.5-rel/sql/sql_derived.cc:1594 #9 0x0000561c1b76e22a in JOIN::optimize_inner (this=this@entry=0x7f5d181075d0) at /data/bld/10.5-rel/sql/sql_select.cc:2234 #10 0x0000561c1b76eb3a in JOIN::optimize (this=this@entry=0x7f5d181075d0) at /data/bld/10.5-rel/sql/sql_select.cc:1765 #11 0x0000561c1b76ec03 in mysql_select (thd=thd@entry=0x7f5d18000c68, tables=<optimized out>, fields=..., conds=<optimized out>, og_num=<optimized out>, order=<optimized out>, group=<optimized out>, having=<optimized out>, proc_param=<optimized out>, select_options=<optimized out>, result=<optimized out>, unit=<optimized out>, select_lex=<optimized out>) at /data/bld/10.5-rel/sql/sql_select.cc:4907 #12 0x0000561c1b76f634 in handle_select (thd=thd@entry=0x7f5d18000c68, lex=lex@entry=0x7f5d18004b98, result=result@entry=0x7f5d181075a8, setup_tables_done_option=setup_tables_done_option@entry=0) at /data/bld/10.5-rel/sql/sql_select.cc:449 #13 0x0000561c1b6f03a0 in execute_sqlcom_select (thd=thd@entry=0x7f5d18000c68, all_tables=0x7f5d18010d80) at /data/bld/10.5-rel/sql/sql_parse.cc:6451 #14 0x0000561c1b70092e in mysql_execute_command (thd=thd@entry=0x7f5d18000c68) at /data/bld/10.5-rel/sql/sql_parse.cc:4043 #15 0x0000561c1b70248c in mysql_parse (thd=0x7f5d18000c68, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /data/bld/10.5-rel/sql/sql_parse.cc:8251 #16 0x0000561c1b7055a5 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7f5d18000c68, packet=packet@entry=0x7f5d18008109 "SELECT * FROM v WHERE ELT(DEFAULT(cnt), object_type)", packet_length=packet_length@entry=52, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /data/bld/10.5-rel/sql/sql_parse.cc:1992 #17 0x0000561c1b706f0d in do_command (thd=thd@entry=0x7f5d18000c68) at /data/bld/10.5-rel/sql/sql_parse.cc:1375 #18 0x0000561c1b81235d in do_handle_one_connection (connect=<optimized out>, put_in_cache=true) at /data/bld/10.5-rel/sql/sql_connect.cc:1386 #19 0x0000561c1b8127c5 in handle_one_connection (arg=arg@entry=0x561c1f22bad8) at /data/bld/10.5-rel/sql/sql_connect.cc:1298 #20 0x0000561c1bbc6e44 in pfs_spawn_thread (arg=0x561c1f19b288) at /data/bld/10.5-rel/storage/perfschema/pfs.cc:2201 #21 0x00007f5d68ca8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #22 0x00007f5d68d2861c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Note that the view structure is a simplified variation derived from a real-life view (from 10.6+ sys schema). Only the query comes from artificially generated tests. And another different one: SELECT * FROM `sys`.`user_summary` WHERE DEFAULT (`current_memory`) = ` user `; 10.6 07b77e862cd36a055a319458fef218eb58467599 #2 <signal handler called> #3 0x000055691789296a in Item_field::register_field_in_read_map (this=0x62b000086320, arg=0x619000097e98) at /data/bld/10.6-rel-asan/sql/item.cc:892 #4 0x0000556916e1308a in Item::walk (this=0x62b000086320, processor=<optimized out>, walk_subquery=<optimized out>, arg=<optimized out>) at /data/bld/10.6-rel-asan/sql/item.h:2193 #5 0x00005569178e2b41 in Item_default_value::walk (this=0x62f00002e420, processor=<optimized out>, walk_subquery=<optimized out>, args=<optimized out>) at /data/bld/10.6-rel-asan/sql/item.h:6964 #6 0x000055691765e942 in Item_cache::walk (this=0x62f000040538, processor=<optimized out>, walk_subquery=<optimized out>, arg=0x619000097e98) at /data/bld/10.6-rel-asan/sql/item.h:7423 #7 0x0000556916f9f372 in Item_args::walk_args (arg=0x619000097e98, walk_subquery=true, processor=<optimized out>, this=0x62f00002e5b8) at /data/bld/10.6-rel-asan/sql/item.h:2846 #8 Item_func_or_sum::walk (this=0x62f00002e548, processor=<optimized out>, walk_subquery=<optimized out>, arg=<optimized out>) at /data/bld/10.6-rel-asan/sql/item.h:5688 #9 0x000055691783d522 in find_all_keys (found_rows=0x613000021070, pq=0x0, tempfile=0x7f724a513e00, buffpek_pointers=0x7f724a513f30, fs_info=0x613000020f00, select=0x62f000040658, param=0x7f724a513d00, thd=0x62b00007e218) at /data/bld/10.6-rel-asan/sql/filesort.cc:894 #10 filesort (thd=thd@entry=0x62b00007e218, table=table@entry=0x619000097e98, filesort=filesort@entry=0x62f0000423c8, tracker=<optimized out>, join=join@entry=0x62f0000278f0, first_table_bit=<optimized out>) at /data/bld/10.6-rel-asan/sql/filesort.cc:356 #11 0x00005569171d605c in create_sort_index (thd=0x62b00007e218, join=0x62f0000278f0, tab=tab@entry=0x62f00003e200, fsort=0x62f0000423c8, fsort@entry=0x0) at /data/bld/10.6-rel-asan/sql/sql_select.cc:25929 #12 0x00005569171d6a85 in st_join_table::sort_table (this=this@entry=0x62f00003e200) at /data/bld/10.6-rel-asan/sql/sql_select.cc:23438 #13 0x00005569171d6cfb in join_init_read_record (tab=0x62f00003e200) at /data/bld/10.6-rel-asan/sql/sql_select.cc:23377 #14 0x0000556917190236 in sub_select (join=0x62f0000278f0, join_tab=0x62f00003e200, end_of_records=<optimized out>) at /data/bld/10.6-rel-asan/sql/sql_select.cc:22385 #15 0x0000556917235144 in do_select (procedure=<optimized out>, join=0x62f0000278f0) at /data/bld/10.6-rel-asan/sql/sql_select.cc:21911 #16 JOIN::exec_inner (this=this@entry=0x62f0000278f0) at /data/bld/10.6-rel-asan/sql/sql_select.cc:4939 #17 0x00005569172368a8 in JOIN::exec (this=this@entry=0x62f0000278f0) at /data/bld/10.6-rel-asan/sql/sql_select.cc:4717 #18 0x000055691722eebe in mysql_select (thd=thd@entry=0x62b00007e218, tables=<optimized out>, fields=..., conds=0x0, og_num=2, order=0x6290001b4a48, group=<optimized out>, having=<optimized out>, proc_param=<optimized out>, select_options=<optimized out>, result=<optimized out>, unit=<optimized out>, select_lex=<optimized out>) at /data/bld/10.6-rel-asan/sql/sql_select.cc:5196 #19 0x0000556916fb480f in mysql_derived_fill (thd=<optimized out>, lex=<optimized out>, derived=<optimized out>) at /data/bld/10.6-rel-asan/sql/sql_derived.cc:1291 #20 0x0000556916fb341e in mysql_handle_single_derived (lex=0x62b000082370, derived=derived@entry=0x62b000085ba8, phases=phases@entry=96) at /data/bld/10.6-rel-asan/sql/sql_derived.cc:200 #21 0x000055691718f900 in st_join_table::preread_init (this=this@entry=0x62f0000487a0) at /data/bld/10.6-rel-asan/sql/sql_select.cc:15190 #22 0x000055691718fedc in sub_select (join=0x62f0000229b8, join_tab=0x62f0000487a0, end_of_records=<optimized out>) at /data/bld/10.6-rel-asan/sql/sql_select.cc:22346 #23 0x0000556917235144 in do_select (procedure=<optimized out>, join=0x62f0000229b8) at /data/bld/10.6-rel-asan/sql/sql_select.cc:21911 #24 JOIN::exec_inner (this=this@entry=0x62f0000229b8) at /data/bld/10.6-rel-asan/sql/sql_select.cc:4939 #25 0x00005569172368a8 in JOIN::exec (this=this@entry=0x62f0000229b8) at /data/bld/10.6-rel-asan/sql/sql_select.cc:4717 #26 0x000055691722eebe in mysql_select (thd=thd@entry=0x62b00007e218, tables=<optimized out>, fields=..., conds=0x62b0000866b0, og_num=0, order=0x0, group=<optimized out>, having=<optimized out>, proc_param=<optimized out>, select_options=<optimized out>, result=<optimized out>, unit=<optimized out>, select_lex=<optimized out>) at /data/bld/10.6-rel-asan/sql/sql_select.cc:5196 #27 0x00005569172309d7 in handle_select (thd=thd@entry=0x62b00007e218, lex=lex@entry=0x62b000082370, result=result@entry=0x62f000022988, setup_tables_done_option=setup_tables_done_option@entry=0) at /data/bld/10.6-rel-asan/sql/sql_select.cc:573 #28 0x000055691708730c in execute_sqlcom_select (thd=thd@entry=0x62b00007e218, all_tables=<optimized out>) at /data/bld/10.6-rel-asan/sql/sql_parse.cc:6421 #29 0x00005569170b4faa in mysql_execute_command (thd=thd@entry=0x62b00007e218, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/bld/10.6-rel-asan/sql/sql_parse.cc:4013 #30 0x00005569170ba93a in mysql_parse (thd=thd@entry=0x62b00007e218, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x7f724a516870) at /data/bld/10.6-rel-asan/sql/sql_parse.cc:8208 #31 0x00005569170c234b in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x62b00007e218, packet=packet@entry=0x62900019f219 "", packet_length=packet_length@entry=75, blocking=blocking@entry=true) at /data/bld/10.6-rel-asan/sql/sql_parse.cc:1908 #32 0x00005569170c75c7 in do_command (thd=thd@entry=0x62b00007e218, blocking=blocking@entry=true) at /data/bld/10.6-rel-asan/sql/sql_parse.cc:1421 #33 0x000055691748e64d in do_handle_one_connection (connect=<optimized out>, connect@entry=0x608000002eb8, put_in_cache=put_in_cache@entry=true) at /data/bld/10.6-rel-asan/sql/sql_connect.cc:1386 #34 0x000055691748ee3d in handle_one_connection (arg=arg@entry=0x608000002eb8) at /data/bld/10.6-rel-asan/sql/sql_connect.cc:1298 #35 0x000055691807e103 in pfs_spawn_thread (arg=0x617000005b98) at /data/bld/10.6-rel-asan/storage/perfschema/pfs.cc:2201 #36 0x00007f7253aa8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #37 0x00007f7253b2861c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

            People

              Johnston Rex Johnston
              alice Alice Sherepa
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.