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

Assertion `str[strlen(str)-1] != '\n'[ || strlen(str) == 512-1]' failed in my_message_sql

    XMLWordPrintable

Details

    • Can result in hang or crash

    Description

      INSTALL SONAME 'ha_connect';
      CREATE TABLE t ENGINE=CONNECT TABNAME=list;
      

      Leads to:

      CS 12.3.0 fa36b269f139252b81d4384fbed07b167855cabb (Debug, Clang 21.1.3-20250923) Build 05/02/2026

      mariadbd: /test/12.3_dbg/sql/mysqld.cc:3382: void my_message_sql(uint, const char *, myf): Assertion `str[strlen(str)-1] != '\n'' failed.
      

      CS 12.3.0 fa36b269f139252b81d4384fbed07b167855cabb (Debug, Clang 21.1.3-20250923) Build 05/02/2026

      Core was generated by `/test/MD050226-mariadb-12.3.0-linux-x86_64-dbg/bin/mariadbd --no-defaults --max'.
      Program terminated with signal SIGABRT, Aborted.
      Download failed: Invalid argument.  Continuing without source file ./nptl/./nptl/pthread_kill.c.
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
       
      [Current thread is 1 (LWP 1358449)]
      (gdb) bt
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
      #1  __pthread_kill_internal (signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:78
      #2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)at ./nptl/pthread_kill.c:89
      #3  0x00007fbddc64526e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
      #4  0x00007fbddc6288ff in __GI_abort () at ./stdlib/abort.c:79
      #5  0x00007fbddc62881b in __assert_fail_base (fmt=0x7fbddc7d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x63878ade909f "str[strlen(str)-1] != '\\n'", file=file@entry=0x63878adacc00 "/test/12.3_dbg/sql/mysqld.cc", line=line@entry=3382, function=function@entry=0x63878ae57638 "void my_message_sql(uint, const char *, myf)") at ./assert/assert.c:94
      #6  0x00007fbddc63b507 in __assert_fail (assertion=0x63878ade909f "str[strlen(str)-1] != '\\n'", file=0x63878adacc00 "/test/12.3_dbg/sql/mysqld.cc", line=3382, function=0x63878ae57638 "void my_message_sql(uint, const char *, myf)")at ./assert/assert.c:103
      #7  0x000063878b56045e in my_message_sql (error=1105, str=0x7fbcb4042348 "Error 1 opening share\n", MyFlags=0)at /test/12.3_dbg/sql/mysqld.cc:3382
      #8  0x000063878c40c5fa in my_message (error=1105, str=0x7fbcb4042348 "Error 1 opening share\n", MyFlags=0)at /test/12.3_dbg/mysys/my_error.c:195
      #9  0x00007fbd924fe5c6 in connect_assisted_discovery (thd=0x7fbcb4000d58, table_s=0x7fbdd84e3880, create_info=0x7fbdd84e4f18)at /test/12.3_dbg/storage/connect/ha_connect.cc:6380
      #10 0x000063878bb51690 in create_table_impl (thd=0x7fbcb4000d58, ddl_log_state_create=0x7fbdd84e4af8, ddl_log_state_rm=0x7fbdd84e4ad8, orig_db=@0x7fbcb401a070: {<Lex_ident_fs> = {<Lex_ident<Compare_table_names>> = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x7fbcb401a040 "test", length = 4}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, orig_table_name=@0x7fbcb401a080: {<Lex_ident_fs> = {<Lex_ident<Compare_table_names>> = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x7fbcb401a010 "t", length = 1}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, db=@0x7fbcb401a070: {str = 0x7fbcb401a040 "test", length = 4}, table_name=@0x7fbcb401a080: {str = 0x7fbcb401a010 "t", length = 1}, path=@0x7fbdd84e4708: {str = 0x7fbdd84e4790 "./test/t", length = 8}, options={m_options = DDL_options_st::OPT_NONE}, create_info=0x7fbdd84e4f18, alter_info=0x7fbdd84e4da0, create_table_mode=-1, is_trans=0x7fbdd84e4acf, key_info=0x7fbdd84e4750, key_count=0x7fbdd84e474c, frm=0x7fbdd84e4720)at /test/12.3_dbg/sql/sql_table.cc:4900
      #11 0x000063878bb50a75 in mysql_create_table_no_lock (thd=0x7fbcb4000d58, ddl_log_state_create=0x7fbdd84e4af8, ddl_log_state_rm=0x7fbdd84e4ad8, create_info=0x7fbdd84e4f18, alter_info=0x7fbdd84e4da0, is_trans=0x7fbdd84e4acf, create_table_mode=-1, table_list=0x7fbcb401a050)at /test/12.3_dbg/sql/sql_table.cc:5053
      #12 0x000063878bb6a5cd in mysql_create_table (thd=0x7fbcb4000d58, create_table=0x7fbcb401a050, create_info=0x7fbdd84e4f18, alter_info=0x7fbdd84e4da0) at /test/12.3_dbg/sql/sql_table.cc:5299
      #13 0x000063878bb68d9e in Sql_cmd_create_table_like::execute (this=0x7fbcb4019fd8, thd=0x7fbcb4000d58)at /test/12.3_dbg/sql/sql_table.cc:13859
      #14 0x000063878ba3194d in mysql_execute_command (thd=0x7fbcb4000d58, is_called_from_prepared_stmt=false) at /test/12.3_dbg/sql/sql_parse.cc:5911
      #15 0x000063878ba22a58 in mysql_parse (thd=0x7fbcb4000d58, rawbuf=0x7fbcb4019ee0 "CREATE TABLE t ENGINE=CONNECT t_type=Xc TABNAME=tLIST option_list='cname=tt'", length=76, parser_state=0x7fbdd84e6a00)at /test/12.3_dbg/sql/sql_parse.cc:7950
      #16 0x000063878ba2020e in dispatch_command (command=COM_QUERY, thd=0x7fbcb4000d58, packet=0x7fbcb400b239 "CREATE TABLE t ENGINE=CONNECT t_type=Xc TABNAME=tLIST option_list='cname=tt'", packet_length=76, blocking=true)at /test/12.3_dbg/sql/sql_parse.cc:1896
      #17 0x000063878ba234da in do_command (thd=0x7fbcb4000d58, blocking=true)at /test/12.3_dbg/sql/sql_parse.cc:1432
      #18 0x000063878bc1b42e in do_handle_one_connection (connect=0x63878ec52fc8, put_in_cache=true) at /test/12.3_dbg/sql/sql_connect.cc:1503
      #19 0x000063878bc1b211 in handle_one_connection (arg=0x63878eb8f6a8)at /test/12.3_dbg/sql/sql_connect.cc:1415
      #20 0x00007fbddc69ca94 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
      #21 0x00007fbddc729c3c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      Bug Detection Matrix

          Rel    o/d  Build   Commit                                    UniqueID observed             
      CS  10.6   dbg  230126  cd02709a315c9f08965d6b8fb7e75baaae17a4f4  str[strlen(str)-1] != '\n'|SIGABRT|my_message_sql|my_message|connect_assisted_discovery|create_table_impl
      CS  10.6   opt  230126  cd02709a315c9f08965d6b8fb7e75baaae17a4f4  No bug found                  
      CS  10.11  dbg  230126  b061b5ab1f2cd2a6993e53dc24a865304ced14cd  str[strlen(str)-1] != '\n'|SIGABRT|my_message_sql|my_message|connect_assisted_discovery|create_table_impl
      CS  10.11  opt  230126  b061b5ab1f2cd2a6993e53dc24a865304ced14cd  No bug found                  
      CS  11.4   dbg  260126  b6d0e23d76fe5936b6a29379ab494852e4d493b1  str[strlen(str)-1] != '\n'|SIGABRT|my_message_sql|my_message|connect_assisted_discovery|create_table_impl
      CS  11.4   opt  260126  b6d0e23d76fe5936b6a29379ab494852e4d493b1  No bug found                  
      CS  11.8   dbg  230126  01ff5ae6b677bead4c41d91bf5afb25c593a1d02  str[strlen(str)-1] != '\n'|SIGABRT|my_message_sql|my_message|connect_assisted_discovery|create_table_impl
      CS  11.8   opt  230126  01ff5ae6b677bead4c41d91bf5afb25c593a1d02  No bug found                  
      CS  12.2   dbg  230126  6ca70dd64ce56da40fad3bcd0641493210dd0a4c  str[strlen(str)-1] != '\n'|SIGABRT|my_message_sql|my_message|connect_assisted_discovery|create_table_impl
      CS  12.2   opt  230126  6ca70dd64ce56da40fad3bcd0641493210dd0a4c  No bug found                  
      CS  12.3   dbg  050226  fa36b269f139252b81d4384fbed07b167855cabb  str[strlen(str)-1] != '\n'|SIGABRT|my_message_sql|my_message|connect_assisted_discovery|create_table_impl
      CS  12.3   opt  050226  fa36b269f139252b81d4384fbed07b167855cabb  No bug found                  
      ES  10.6   dbg  230126  0fe345fff3a0463224ca714831303d40fb83648b  str[strlen(str)-1] != '\n'|SIGABRT|my_message_sql|my_message|connect_assisted_discovery|create_table_impl
      ES  10.6   opt  230126  0fe345fff3a0463224ca714831303d40fb83648b  No bug found                  
      ES  11.4   dbg  230126  34f616d5fd2c649d0c79acb4e2423c90b8f10436  str[strlen(str)-1] != '\n'|SIGABRT|my_message_sql|my_message|connect_assisted_discovery|create_table_impl
      ES  11.4   opt  230126  34f616d5fd2c649d0c79acb4e2423c90b8f10436  No bug found                  
      ES  11.8   dbg  230126  405ee76b60c4ab82155f339136ed20d3b7363717  str[strlen(str)-1] != '\n'|SIGABRT|my_message_sql|my_message|connect_assisted_discovery|create_table_impl
      ES  11.8   opt  230126  405ee76b60c4ab82155f339136ed20d3b7363717  No bug found                  
      MS  5.5    dbg  070123  bac287c315b1792e7ae33f91add6a60292f9bae8  No bug found                  
      MS  5.5    opt  070123  bac287c315b1792e7ae33f91add6a60292f9bae8  No bug found                  
      MS  5.6    dbg  070123  dab95781a1244104d6b87020ac2fc4d190ba2946  No bug found                  
      MS  5.6    opt  070123  dab95781a1244104d6b87020ac2fc4d190ba2946  No bug found                  
      MS  5.7    dbg  070525  f7680e98b6bbe3500399fbad465d08a6b75d7a5c  No bug found                  
      MS  5.7    opt  070525  f7680e98b6bbe3500399fbad465d08a6b75d7a5c  No bug found                  
      MS  8.0    dbg  060224  49ef33f7edadef3ae04665e73d1babd40179a4f1  No bug found                  
      MS  8.0    opt  060224  49ef33f7edadef3ae04665e73d1babd40179a4f1  No bug found                  
      MS  9.1    dbg  211024  61a3a1d8ef15512396b4c2af46e922a19bf2b174  No bug found                  
      MS  9.1    opt  211024  61a3a1d8ef15512396b4c2af46e922a19bf2b174  No bug found                  
      

      Also verified that the patch 7b9d3a4df6c925b5f195df493580cc2bb51c11d8 does not fix the issue. After the patch we see the new assert also failing:

      CS 12.3.1 21a0714a118614982d20bfa504763d7247800091 (Debug, Clang 21.1.3-20250923) Build 13/02/2026

      mariadbd: /test/git-bisect/12.3_dbg/sql/mysqld.cc:3387: void my_message_sql(uint, const char *, myf): Assertion `str[strlen(str)-1] != '\n' || strlen(str) == 512-1' failed.
      

      CS 12.3.1 21a0714a118614982d20bfa504763d7247800091 (Debug, Clang 21.1.3-20250923) Build 13/02/2026

      Core was generated by `/test/git-bisect/MD130226-mariadb-12.3.1-linux-x86_64-dbg/bin/mariadbd --no-def'.
      Program terminated with signal SIGABRT, Aborted.
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
       
      [Current thread is 1 (LWP 905566)]
      (gdb) bt
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
      #1  __pthread_kill_internal (signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:78
      #2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)at ./nptl/pthread_kill.c:89
      #3  0x00007abe56c4526e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
      #4  0x00007abe56c288ff in __GI_abort () at ./stdlib/abort.c:79
      #5  0x00007abe56c2881b in __assert_fail_base (fmt=0x7abe56dd01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x5d91bf41adea "str[strlen(str)-1] != '\\n' || strlen(str) == 512-1", file=file@entry=0x5d91bf3fc97e "/test/git-bisect/12.3_dbg/sql/mysqld.cc", line=line@entry=3387, function=function@entry=0x5d91bf45cb86 "void my_message_sql(uint, const char *, myf)") at ./assert/assert.c:94
      #6  0x00007abe56c3b507 in __assert_fail (assertion=0x5d91bf41adea "str[strlen(str)-1] != '\\n' || strlen(str) == 512-1", file=0x5d91bf3fc97e "/test/git-bisect/12.3_dbg/sql/mysqld.cc", line=3387, function=0x5d91bf45cb86 "void my_message_sql(uint, const char *, myf)")at ./assert/assert.c:103
      #7  0x00005d91bfb838b1 in my_message_sql (error=1105, str=0x7abd50042ab8 "Error 1 opening share\n", MyFlags=0)at /test/git-bisect/12.3_dbg/sql/mysqld.cc:3387
      #8  0x00005d91c0a5d1ca in my_message (error=1105, str=0x7abd50042ab8 "Error 1 opening share\n", MyFlags=0)at /test/git-bisect/12.3_dbg/mysys/my_error.c:192
      #9  0x00007abe0cd21811 in connect_assisted_discovery (thd=0x7abd50000d58, table_s=0x7abe4ff6b8e0, create_info=0x7abe4ff6cf78)at /test/git-bisect/12.3_dbg/storage/connect/ha_connect.cc:6368
      #10 0x00005d91c0196026 in create_table_impl (thd=0x7abd50000d58, ddl_log_state_create=0x7abe4ff6cb58, ddl_log_state_rm=0x7abe4ff6cb38, orig_db=@0x7abd5001a2b0: {<Lex_ident_fs> = {<Lex_ident<Compare_table_names>> = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x7abd5001a280 "test", length = 4}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, orig_table_name=@0x7abd5001a2c0: {<Lex_ident_fs> = {<Lex_ident<Compare_table_names>> = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x7abd5001a250 "t", length = 1}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, db=@0x7abd5001a2b0: {str = 0x7abd5001a280 "test", length = 4}, table_name=@0x7abd5001a2c0: {str = 0x7abd5001a250 "t", length = 1}, path=@0x7abe4ff6c768: {str = 0x7abe4ff6c7f0 "./test/t", length = 8}, options={m_options = DDL_options_st::OPT_NONE}, create_info=0x7abe4ff6cf78, alter_info=0x7abe4ff6ce00, create_table_mode=-1, is_trans=0x7abe4ff6cb2f, key_info=0x7abe4ff6c7b0, key_count=0x7abe4ff6c7ac, frm=0x7abe4ff6c780)at /test/git-bisect/12.3_dbg/sql/sql_table.cc:4892
      #11 0x00005d91c01953a5 in mysql_create_table_no_lock (thd=0x7abd50000d58, ddl_log_state_create=0x7abe4ff6cb58, ddl_log_state_rm=0x7abe4ff6cb38, create_info=0x7abe4ff6cf78, alter_info=0x7abe4ff6ce00, is_trans=0x7abe4ff6cb2f, create_table_mode=-1, table_list=0x7abd5001a290)at /test/git-bisect/12.3_dbg/sql/sql_table.cc:5044
      #12 0x00005d91c01aef5d in mysql_create_table (thd=0x7abd50000d58, create_table=0x7abd5001a290, create_info=0x7abe4ff6cf78, alter_info=0x7abe4ff6ce00)at /test/git-bisect/12.3_dbg/sql/sql_table.cc:5290
      #13 0x00005d91c01ad72e in Sql_cmd_create_table_like::execute (this=0x7abd5001a218, thd=0x7abd50000d58)at /test/git-bisect/12.3_dbg/sql/sql_table.cc:13850
      #14 0x00005d91c0074419 in mysql_execute_command (thd=0x7abd50000d58, is_called_from_prepared_stmt=false)at /test/git-bisect/12.3_dbg/sql/sql_parse.cc:5901
      #15 0x00005d91c0065638 in mysql_parse (thd=0x7abd50000d58, rawbuf=0x7abd5001a120 "CREATE TABLE t ENGINE=CONNECT t_type=Xc TABNAME=tLIST option_list='cname=tt'", length=76, parser_state=0x7abe4ff6e9f0)at /test/git-bisect/12.3_dbg/sql/sql_parse.cc:7940
      #16 0x00005d91c0062dee in dispatch_command (command=COM_QUERY, thd=0x7abd50000d58, packet=0x7abd5000b4c9 "CREATE TABLE t ENGINE=CONNECT t_type=Xc TABNAME=tLIST option_list='cname=tt'", packet_length=76, blocking=true)at /test/git-bisect/12.3_dbg/sql/sql_parse.cc:1896
      #17 0x00005d91c00660ba in do_command (thd=0x7abd50000d58, blocking=true)at /test/git-bisect/12.3_dbg/sql/sql_parse.cc:1432
      #18 0x00005d91c026595e in do_handle_one_connection (connect=0x5d91c36cb0a8, put_in_cache=true) at /test/git-bisect/12.3_dbg/sql/sql_connect.cc:1503
      #19 0x00005d91c0265741 in handle_one_connection (arg=0x5d91c36e7478)at /test/git-bisect/12.3_dbg/sql/sql_connect.cc:1415
      #20 0x00007abe56c9ca94 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
      #21 0x00007abe56d29c3c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      Testcase is CLI and MTR compatible.

      Attachments

        Issue Links

          Activity

            People

              serg Sergei Golubchik
              Roel Roel Van de Paar
              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.