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

Assertion `str[strlen(str)-1] != '\n'' failed upon federated discovery error

    XMLWordPrintable

Details

    • Not for Release Notes
    • Q1/2026 Server Maintenance

    Description

      --source include/have_partition.inc
       
      INSTALL SONAME 'ha_federatedx';
       
      CREATE TABLE table_name_long_enough_to_cause_an_assertion_failure (
       pk integer auto_increment,
       col_int int,
       col_char_12 char(12),
       col_char_12_key char(12),
       col_int_key int,
       primary key (pk DESC),
       key (col_char_12_key),
       key (col_int_key)) PARTITION BY key (pk) partitions 2;
       
      eval CREATE SERVER fedlink FOREIGN DATA WRAPPER mysql OPTIONS (USER 'root', HOST '127.0.0.1', DATABASE 'test', PORT $MASTER_MYPORT);
       
      CREATE DATABASE fed_db;
      --error ER_SQL_DISCOVER_ERROR
      CREATE TABLE fed_db.table_name_long_enough_to_cause_an_assertion_failure ENGINE=FEDERATED CONNECTION = 'fedlink/table_name_long_enough_to_cause_an_assertion_failure';
      SHOW WARNINGS;
       
      DROP DATABASE fed_db;
      DROP TABLE table_name_long_enough_to_cause_an_assertion_failure;
      DROP SERVER fedlink;
      UNINSTALL SONAME 'ha_federatedx';
      

      10.11 c69ea9b286aceee1e72ffe3713db543633115cbe

      mariadbd: /data/bld/10.11-asan-ubsan/sql/mysqld.cc:3352: void my_message_sql(uint, const char*, myf): Assertion `str[strlen(str)-1] != '\n'' failed.
      260125 11:50:26 [ERROR] /share8t/bld/10.11-asan-ubsan/sql/mariadbd got signal 6 ;
       
      #9  0x00007f2453045395 in __assert_fail_base (fmt=0x7f24531b9a90 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x55d438de5760 "str[strlen(str)-1] != '\\n'", file=file@entry=0x55d438de14a0 "/data/bld/10.11-asan-ubsan/sql/mysqld.cc", line=line@entry=3352, function=function@entry=0x55d438de5540 "void my_message_sql(uint, const char*, myf)") at ./assert/assert.c:92
      #10 0x00007f2453053eb2 in __GI___assert_fail (assertion=0x55d438de5760 "str[strlen(str)-1] != '\\n'", file=0x55d438de14a0 "/data/bld/10.11-asan-ubsan/sql/mysqld.cc", line=3352, function=0x55d438de5540 "void my_message_sql(uint, const char*, myf)") at ./assert/assert.c:101
      #11 0x000055d434e0d29b in my_message_sql (error=<optimized out>, str=0x7f2448fd0ce0 "Engine FEDERATED failed to discover table `fed_db`.`table_name_long_enough_to_cause_an_assertion_failure` with 'CREATE TABLE `table_name_long_enough_to_cause_an_assertion_failure` (\n  `pk` int(11) NOT"..., MyFlags=<optimized out>) at /data/bld/10.11-asan-ubsan/sql/mysqld.cc:3352
      #12 0x000055d4389e3de3 in my_error (nr=1939, MyFlags=<optimized out>) at /data/bld/10.11-asan-ubsan/mysys/my_error.c:124
      #13 0x000055d435c79875 in TABLE_SHARE::init_from_sql_statement_string (this=this@entry=0x7f2448fd4100, thd=thd@entry=0x62c0000b0218, write=write@entry=true, sql=<optimized out>, sql_length=<optimized out>) at /data/bld/10.11-asan-ubsan/sql/table.cc:3590
      #14 0x00007f2448157270 in ha_federatedx::discover_assisted (hton=<optimized out>, thd=0x62c0000b0218, table_s=<optimized out>, info=<optimized out>) at /data/bld/10.11-asan-ubsan/storage/federatedx/ha_federatedx.cc:3691
      #15 0x000055d435a8eed8 in create_table_impl (thd=thd@entry=0x62c0000b0218, ddl_log_state_create=ddl_log_state_create@entry=0x7f2448fd5410, ddl_log_state_rm=<optimized out>, ddl_log_state_rm@entry=0x7f2448fd5450, orig_db=..., orig_table_name=..., db=..., table_name=..., path=..., options=..., create_info=<optimized out>, alter_info=<optimized out>, create_table_mode=<optimized out>, is_trans=<optimized out>, key_info=<optimized out>, key_count=<optimized out>, frm=<optimized out>) at /data/bld/10.11-asan-ubsan/sql/sql_table.cc:4802
      #16 0x000055d435a90711 in mysql_create_table_no_lock (thd=thd@entry=0x62c0000b0218, ddl_log_state_create=ddl_log_state_create@entry=0x7f2448fd5410, ddl_log_state_rm=ddl_log_state_rm@entry=0x7f2448fd5450, create_info=create_info@entry=0x7f2448fd59e0, alter_info=alter_info@entry=0x7f2448fd5830, is_trans=is_trans@entry=0x7f2448fd5400, create_table_mode=<optimized out>, table_list=<optimized out>) at /data/bld/10.11-asan-ubsan/sql/sql_table.cc:4955
      #17 0x000055d435a9219d in mysql_create_table (thd=thd@entry=0x62c0000b0218, create_table=create_table@entry=0x62d00005a6e8, create_info=create_info@entry=0x7f2448fd59e0, alter_info=alter_info@entry=0x7f2448fd5830) at /data/bld/10.11-asan-ubsan/sql/sql_table.cc:5202
      #18 0x000055d435abb774 in Sql_cmd_create_table_like::execute (this=<optimized out>, thd=0x62c0000b0218) at /data/bld/10.11-asan-ubsan/sql/sql_table.cc:13159
      #19 0x000055d4355ac265 in mysql_execute_command (thd=thd@entry=0x62c0000b0218, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/bld/10.11-asan-ubsan/sql/sql_parse.cc:6201
      #20 0x000055d4355b0ab0 in mysql_parse (thd=thd@entry=0x62c0000b0218, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x7f2448fd6ab0) at /data/bld/10.11-asan-ubsan/sql/sql_parse.cc:8223
      #21 0x000055d4355b9e5d in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x62c0000b0218, packet=packet@entry=0x62900024e219 "CREATE TABLE fed_db.table_name_long_enough_to_cause_an_assertion_failure ENGINE=FEDERATED CONNECTION = 'fedlink/table_name_long_enough_to_cause_an_assertion_failure'", packet_length=packet_length@entry=165, blocking=blocking@entry=true) at /data/bld/10.11-asan-ubsan/sql/sql_parse.cc:1924
      #22 0x000055d4355c6b62 in do_command (thd=thd@entry=0x62c0000b0218, blocking=blocking@entry=true) at /data/bld/10.11-asan-ubsan/sql/sql_parse.cc:1434
      #23 0x000055d435dc1f06 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x608000003338, put_in_cache=put_in_cache@entry=true) at /data/bld/10.11-asan-ubsan/sql/sql_connect.cc:1475
      #24 0x000055d435dc3063 in handle_one_connection (arg=0x608000003338) at /data/bld/10.11-asan-ubsan/sql/sql_connect.cc:1387
      #25 0x000055d437744de7 in pfs_spawn_thread (arg=0x617000005b98) at /data/bld/10.11-asan-ubsan/storage/perfschema/pfs.cc:2201
      #26 0x00007f24530a81c4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #27 0x00007f245312885c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
      

      The test case appears to be deterministic, but it apparently depends on the certain length of the query and/or table definition, so I couldn't prettify it further. The non-debug behavior is ER_SQL_DISCOVER_ERROR with a bunch of underlying errors, including a syntax error (likely due to partitioning):

      10.11 non-debug

      SHOW WARNINGS;
      Level	Code	Message
      Error	1064	You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CONNECTION='fedlink/table_name_long_enough_to_cause_an_assertion_failure'' at line 12
      Error	1939	Engine FEDERATED failed to discover table `fed_db`.`table_name_long_enough_to_cause_an_assertion_failure` with 'CREATE TABLE `table_name_long_enough_to_cause_an_assertion_failure` (
        `pk` int(11) NOT NULL AUTO_INCREMENT,
        `col_int` int(11) DEFAULT NULL,
        `col_char_12` char(12) DEFAULT NULL,
        `col_char_12_key` char(12) DEFAULT NULL,
        `col_int_key` int(11) DEFAULT NULL,
        PRIMARY KEY (`pk` DESC),
        KEY `col_char_12_key` (`col_char_12_key`),
        KEY `col_int_key` (`col_int_key`)
      )
       PARTITION BY KEY (`pk`)
       
      Error	1429	Unable to connect to foreign data source: 
      Error	1030	Got error 168 "Unknown (generic) error from engine" from storage engine FEDERATED
      

      Attachments

        Activity

          People

            serg Sergei Golubchik
            elenst Elena Stepanova
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

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