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

Debug assertion in Table_triggers_list::check_n_load() fails when table names aren't matching

    XMLWordPrintable

Details

    • Bug
    • Status: Confirmed (View Workflow)
    • Major
    • Resolution: Unresolved
    • 10.6, 10.11, 11.4, 12.1(EOL), 12.2, 11.8
    • 10.11, 11.4, 11.8
    • Debug, Triggers
    • None

    Description

      Execution of the following script:

      --source include/have_csv.inc
      let $MYSQLD_DATADIR= `select @@datadir`;
       
      CREATE DATABASE db1;
      USE db1;
      CREATE TABLE t1 (a INT) engine=myisam;
       
      --write_file $MYSQLD_DATADIR/db1/t1.TRG
      TYPE=TRIGGERS
      triggers='CREATE TRIGGER tr1 BEFORE INSERT ON db1.t2 FOR EACH ROW SET NEW.a = NEW.a'
      EOF
       
      SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA != 'sys';
      

      leads to:

      #0  __pthread_kill_implementation (threadid=<optimized out>, signo=6, no_tid=0) at ./nptl/pthread_kill.c:44
      #1  __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89
      #2  __GI___pthread_kill (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:100
      #3  0x00005effc8f0d63b in my_write_core (sig=6) at /src/mariadb/mysys/stacktrace.c:424
      #4  0x00005effc5c71400 in handle_fatal_signal (sig=6) at /src/mariadb/sql/signal_handler.cc:298
      #5  <signal handler called>
      #6  __pthread_kill_implementation (threadid=<optimized out>, signo=6, no_tid=0) at ./nptl/pthread_kill.c:44
      #7  __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89
      #8  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:100
      #9  0x00007dc3c5045e2e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
      #10 0x00007dc3c5028888 in __GI_abort () at ./stdlib/abort.c:77
      #11 0x00007dc3c50287f0 in __assert_fail_base (fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at ./assert/assert.c:118
      #12 0x00005effc4889b8e in Table_triggers_list::check_n_load (thd=0x7c83c42a0218, db=0x7c93c42e23c0, table_name=0x7c93c4523938, table=0x79c3b41c43a0, names_only=true) at /src/mariadb/sql/sql_trigger.cc:1992
      #13 0x00005effc45b88b5 in fill_schema_table_from_frm (thd=0x7c83c42a0218, mem_root=0x79c3b40181c0, table=0x7c93c4514438, schema_table=0x5effcf7d54b0 <schema_tables+3312>, db_name=0x7c93c42e23c0, table_name=0x7c93c4523938, open_tables_state_backup=0x79c3b4018220, can_deadlock=false) at /src/mariadb/sql/sql_show.cc:5267
      #14 0x00005effc45c08f2 in get_all_tables (thd=0x7c83c42a0218, tables=0x7c93c42dabe0, cond=0x7c93c42db538) at /src/mariadb/sql/sql_show.cc:5703
      #15 0x00005effc466b637 in get_schema_tables_result (join=0x7c93c42dcc28, executed_place=PROCESSED_BY_JOIN_EXEC) at /src/mariadb/sql/sql_show.cc:9876
      #16 0x00005effc42b9324 in JOIN::exec_inner (this=0x7c93c42dcc28) at /src/mariadb/sql/sql_select.cc:5054
      #17 0x00005effc42b3037 in JOIN::exec (this=0x7c93c42dcc28) at /src/mariadb/sql/sql_select.cc:4881
      #18 0x00005effc42bf4c9 in mysql_select (thd=0x7c83c42a0218, tables=0x7c93c42dabe0, fields=..., conds=0x7c93c42db538, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2701396736, result=0x7c93c42dcbf8, unit=0x7c83c42a4830, select_lex=0x7c93c42da530) at /src/mariadb/sql/sql_select.cc:5409
      #19 0x00005effc4235a7d in handle_select (thd=0x7c83c42a0218, lex=0x7c83c42a4750, result=0x7c93c42dcbf8, setup_tables_done_option=0) at /src/mariadb/sql/sql_select.cc:636
      #20 0x00005effc400ff22 in execute_sqlcom_select (thd=0x7c83c42a0218, all_tables=0x7c93c42dabe0) at /src/mariadb/sql/sql_parse.cc:6171
      #21 0x00005effc3fde44d in mysql_execute_command (thd=0x7c83c42a0218, is_called_from_prepared_stmt=false) at /src/mariadb/sql/sql_parse.cc:3951
      #22 0x00005effc402f4a6 in mysql_parse (thd=0x7c83c42a0218, rawbuf=0x7c93c42da438 "SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA != 'sys'", length=71, parser_state=0x79c3b4102170) at /src/mariadb/sql/sql_parse.cc:7887
      #23 0x00005effc3fabc80 in dispatch_command (command=COM_QUERY, thd=0x7c83c42a0218, packet=0x7c53c4492219 "SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_SCHEMA != 'sys'", packet_length=71, blocking=true) at /src/mariadb/sql/sql_parse.cc:1878
      #24 0x00005effc3f9fcde in do_command (thd=0x7c83c42a0218, blocking=true) at /src/mariadb/sql/sql_parse.cc:1417
      #25 0x00005effc4c9a675 in do_handle_one_connection (connect=0x7a43c41e45b8, put_in_cache=true) at /src/mariadb/sql/sql_connect.cc:1503
      #26 0x00005effc4c99704 in handle_one_connection (arg=0x7a43c41e4538) at /src/mariadb/sql/sql_connect.cc:1415
      #27 0x00005effc746ad70 in pfs_spawn_thread (arg=0x7b33c41e7098) at /src/mariadb/storage/perfschema/pfs.cc:2198
      #28 0x00007dc3c6a5f803 in asan_thread_start (arg=0x79c3b5004000) at ../../../../src/libsanitizer/asan/asan_interceptors.cpp:239
      #29 0x00007dc3c50a3d64 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:448
      #30 0x00007dc3c51373bc in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      ...due to table names not matching. Maybe it would be better to change the assert to a warning?

      Attachments

        Activity

          People

            sanja Oleksandr Byelkin
            qobood Vasilii Lakhin
            Votes:
            0 Vote for this issue
            Watchers:
            3 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.