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

Assertion failure in diagnostics area upon EXPLAIN UPDATE

    XMLWordPrintable

Details

    Description

      CREATE TABLE t1 (a INT);
      CREATE TABLE t2 (b INET6);
      INSERT INTO t2 VALUES ('::'),('::'); # Optional, fails either way
      --error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION
      EXPLAIN UPDATE t1 SET a = 10 WHERE a IN (SELECT b FROM t2) ORDER BY a LIMIT 1;
       
      # Cleanup
      DROP TABLE t1, t2;
      

      11.7 d60efa269e798537efa77b2b915288425f6e73f1

      mariadbd: /data/bld/11.7-debug/sql/sql_error.cc:470: void Diagnostics_area::set_error_status(uint, const char*, const char*, const Sql_user_condition_identity&, const Sql_condition*): Assertion `! is_set() || m_can_overwrite_status' failed.
      241216 20:53:26 [ERROR] mysqld got signal 6 ;
       
      #9  0x00007f8ea8c53e32 in __GI___assert_fail (assertion=0x560e8a3bc6d8 "! is_set() || m_can_overwrite_status", file=0x560e8a3bc440 "/data/bld/11.7-debug/sql/sql_error.cc", line=470, function=0x560e8a3bc700 "void Diagnostics_area::set_error_status(uint, const char*, const char*, const Sql_user_condition_identity&, const Sql_condition*)") at ./assert/assert.c:101
      #10 0x0000560e893f40f7 in Diagnostics_area::set_error_status (this=0x7f8e90006fb8, sql_errno=4078, message=0x7f8ea238e780 "Illegal parameter data types int and inet6 for operation '='", sqlstate=0x560e8a3f3b0d "HY000", ucid=..., error_condition=0x0) at /data/bld/11.7-debug/sql/sql_error.cc:470
      #11 0x0000560e893c09a9 in THD::raise_condition (this=0x7f8e90000dc8, cond=0x7f8ea238e4f0) at /data/bld/11.7-debug/sql/sql_class.cc:1162
      #12 0x0000560e892b4303 in THD::raise_condition (this=0x7f8e90000dc8, sql_errno=4078, sqlstate=0x560e8a3755f7 "", level=Sql_state_errno_level::WARN_LEVEL_ERROR, msg=0x7f8ea238e780 "Illegal parameter data types int and inet6 for operation '='") at /data/bld/11.7-debug/sql/sql_class.h:5294
      #13 0x0000560e892a17e2 in my_message_sql (error=4078, str=0x7f8ea238e780 "Illegal parameter data types int and inet6 for operation '='", MyFlags=0) at /data/bld/11.7-debug/sql/mysqld.cc:3379
      #14 0x0000560e8a23a027 in my_error (nr=4078, MyFlags=0) at /data/bld/11.7-debug/mysys/my_error.c:124
      #15 0x0000560e898e336d in Type_handler_hybrid_field_type::aggregate_for_comparison (this=0x7f8ea238eb58, funcname=..., items=0x7f8e90064f88, nitems=2, int_uint_as_dec=false) at /data/bld/11.7-debug/sql/item_cmpfunc.cc:116
      #16 0x0000560e898e4270 in Item_func::aggregate_args2_for_comparison_with_conversion (this=0x7f8e90064f08, thd=0x7f8e90000dc8, th=0x7f8ea238eb58) at /data/bld/11.7-debug/sql/item_cmpfunc.cc:421
      #17 0x0000560e898e4862 in Item_bool_rowready_func2::fix_length_and_dec (this=0x7f8e90064f08, thd=0x7f8e90000dc8) at /data/bld/11.7-debug/sql/item_cmpfunc.cc:526
      #18 0x0000560e899262a9 in Item_func::fix_fields (this=0x7f8e90064f08, thd=0x7f8e90000dc8, ref=0x0) at /data/bld/11.7-debug/sql/item_func.cc:366
      #19 0x0000560e8931a6c8 in Item::fix_fields_if_needed (this=0x7f8e90064f08, thd=0x7f8e90000dc8, ref=0x0) at /data/bld/11.7-debug/sql/item.h:1168
      #20 0x0000560e899b9e29 in Item_in_subselect::create_single_in_to_exists_cond (this=0x7f8e90019fe0, join=0x7f8e9001af48, where_item=0x7f8e9001b4d0, having_item=0x7f8e9001b4d8) at /data/bld/11.7-debug/sql/item_subselect.cc:2452
      #21 0x0000560e899bc3b8 in Item_in_subselect::create_in_to_exists_cond (this=0x7f8e90019fe0, join_arg=0x7f8e9001af48) at /data/bld/11.7-debug/sql/item_subselect.cc:2821
      #22 0x0000560e896e4878 in JOIN::choose_subquery_plan (this=0x7f8e9001af48, join_tables=1) at /data/bld/11.7-debug/sql/opt_subselect.cc:6732
      #23 0x0000560e894d1f76 in make_join_statistics (join=0x7f8e9001af48, tables_list=..., keyuse_array=0x7f8e9001b2a8) at /data/bld/11.7-debug/sql/sql_select.cc:6358
      #24 0x0000560e894c47bc in JOIN::optimize_inner (this=0x7f8e9001af48) at /data/bld/11.7-debug/sql/sql_select.cc:2696
      #25 0x0000560e894c1d4b in JOIN::optimize (this=0x7f8e9001af48) at /data/bld/11.7-debug/sql/sql_select.cc:1994
      #26 0x0000560e8941b605 in st_select_lex::optimize_unflattened_subqueries (this=0x7f8e90005b40, const_only=false) at /data/bld/11.7-debug/sql/sql_lex.cc:5054
      #27 0x0000560e895d541d in Sql_cmd_update::update_single_table (this=0x7f8e90018880, thd=0x7f8e90000dc8) at /data/bld/11.7-debug/sql/sql_update.cc:1375
      #28 0x0000560e895db981 in Sql_cmd_update::execute_inner (this=0x7f8e90018880, thd=0x7f8e90000dc8) at /data/bld/11.7-debug/sql/sql_update.cc:3154
      #29 0x0000560e8951fb6a in Sql_cmd_dml::execute (this=0x7f8e90018880, thd=0x7f8e90000dc8) at /data/bld/11.7-debug/sql/sql_select.cc:34313
      #30 0x0000560e894579b7 in mysql_execute_command (thd=0x7f8e90000dc8, is_called_from_prepared_stmt=false) at /data/bld/11.7-debug/sql/sql_parse.cc:4415
      #31 0x0000560e89463694 in mysql_parse (thd=0x7f8e90000dc8, rawbuf=0x7f8e90017e30 "EXPLAIN UPDATE t1 SET a = 10 WHERE a IN (SELECT b FROM t2) ORDER BY a LIMIT 1", length=77, parser_state=0x7f8ea23902e0) at /data/bld/11.7-debug/sql/sql_parse.cc:7901
      #32 0x0000560e8944f99f in dispatch_command (command=COM_QUERY, thd=0x7f8e90000dc8, packet=0x7f8e9000be89 "", packet_length=77, blocking=true) at /data/bld/11.7-debug/sql/sql_parse.cc:1903
      #33 0x0000560e8944e2f8 in do_command (thd=0x7f8e90000dc8, blocking=true) at /data/bld/11.7-debug/sql/sql_parse.cc:1416
      #34 0x0000560e8965a253 in do_handle_one_connection (connect=0x560e8c9c5228, put_in_cache=true) at /data/bld/11.7-debug/sql/sql_connect.cc:1415
      #35 0x0000560e89659fd4 in handle_one_connection (arg=0x560e8c8d66d8) at /data/bld/11.7-debug/sql/sql_connect.cc:1327
      #36 0x0000560e89bdcea6 in pfs_spawn_thread (arg=0x560e8c9ad518) at /data/bld/11.7-debug/storage/perfschema/pfs.cc:2198
      #37 0x00007f8ea8ca8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #38 0x00007f8ea8d2861c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
      

      The failure started happening after this commit in 11.7.1

      commit 4b6922a315fa5411665ac99c0b40fd7238093403 fd87e01f389451227e604da7a0989c0afc78ce42
      Commit:     Yuchen Pei
      CommitDate: Wed Oct 23 23:51:24 2024 +1100
       
          MDEV-25008: UPDATE/DELETE: Cost-based choice IN->EXISTS vs Materialization
      

      No obvious immediate problem on a non-debug build, that is, the query fails with the expected error.

      Attachments

        Issue Links

          Activity

            People

              psergei Sergei Petrunia
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              2 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.