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

Limited tmp_disk_table_size causes wrong results or warnings upon queries from I_S, Assertion `0' in Protocol::end_statement

    XMLWordPrintable

    Details

      Description

      Depending on the version and build, tmp_disk_table_size has different effects on queries from INFORMATION_SCHEMA, particularly INFORMATION_SCHEMA.ALL_PLUGINS.

      The actual contents of ALL_PLUGINS table in the examples before is 109-129 rows, depending on the version.

      SET tmp_disk_table_size= 16384;
      SELECT COUNT(*) FROM INFORMATION_SCHEMA.ALL_PLUGINS;
      SELECT * FROM INFORMATION_SCHEMA.ALL_PLUGINS UNION DISTINCT SELECT * FROM INFORMATION_SCHEMA.ALL_PLUGINS;
      

      10.2 returns wrong results for both queries without any warnings:

      10.2 non-debug a1e52e7f

      MariaDB [test]> SET tmp_disk_table_size= 16384;
      Query OK, 0 rows affected (0.000 sec)
       
      MariaDB [test]> SELECT COUNT(*) FROM INFORMATION_SCHEMA.ALL_PLUGINS;
      +----------+
      | COUNT(*) |
      +----------+
      |        1 |
      +----------+
      1 row in set (0.032 sec)
       
      MariaDB [test]> SELECT * FROM INFORMATION_SCHEMA.ALL_PLUGINS UNION DISTINCT SELECT * FROM INFORMATION_SCHEMA.ALL_PLUGINS;
      Query OK, 0 rows affected (0.021 sec)
      

      10.3 and 10.4 return a correct result on the simple query but wrong result without warnings on UNION:

      10.3 non-debug 2cae58f8

      MariaDB [test]> SET tmp_disk_table_size= 16384;
      Query OK, 0 rows affected (0.000 sec)
       
      MariaDB [test]> SELECT COUNT(*) FROM INFORMATION_SCHEMA.ALL_PLUGINS;
      +----------+
      | COUNT(*) |
      +----------+
      |      109 |
      +----------+
      1 row in set (0.535 sec)
       
      MariaDB [test]> SELECT * FROM INFORMATION_SCHEMA.ALL_PLUGINS UNION DISTINCT SELECT * FROM INFORMATION_SCHEMA.ALL_PLUGINS;
      Query OK, 0 rows affected (0.071 sec)
      

      10.5 returns a wrong result with bunch of warnings (including weird ones about not found symbols) on the simple query and a wrong result without warnings on UNION:

      10.5 non-debug 054f1036

      MariaDB [test]> SET tmp_disk_table_size= 16384;
      Query OK, 0 rows affected (0.000 sec)
       
      MariaDB [test]> SELECT COUNT(*) FROM INFORMATION_SCHEMA.ALL_PLUGINS;
      +----------+
      | COUNT(*) |
      +----------+
      |        1 |
      +----------+
      1 row in set, 45 warnings (0.020 sec)
       
      MariaDB [test]> SHOW WARNINGS;
      +-------+------+-----------------------------------------------------------------+
      | Level | Code | Message                                                         |
      +-------+------+-----------------------------------------------------------------+
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1127 | Can't find symbol '_mysql_plugin_interface_version_' in library |
      | Error | 1127 | Can't find symbol '_mysql_plugin_interface_version_' in library |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1127 | Can't find symbol '_mysql_plugin_interface_version_' in library |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1127 | Can't find symbol '_mysql_plugin_interface_version_' in library |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1127 | Can't find symbol '_mysql_plugin_interface_version_' in library |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      | Error | 1114 | The table '(temporary)' is full                                 |
      +-------+------+-----------------------------------------------------------------+
      45 rows in set (0.000 sec)
       
      MariaDB [test]> SELECT * FROM INFORMATION_SCHEMA.ALL_PLUGINS UNION DISTINCT SELECT * FROM INFORMATION_SCHEMA.ALL_PLUGINS;
      Query OK, 0 rows affected (0.034 sec)
      

      All debug builds additionally abort with an assertion failure upon UNION:

      10.5 debug 054f1036

      mariadbd: /data/src/10.5/sql/protocol.cc:623: void Protocol::end_statement(): Assertion `0' failed.
      200718 18:07:35 [ERROR] mysqld got signal 6 ;
       
      #7  0x00007f1390bfdf12 in __GI___assert_fail (assertion=0x5582bd0edad0 "0", file=0x5582bd0ed7c0 "/data/src/10.5/sql/protocol.cc", line=623, function=0x5582bd0ee190 <Protocol::end_statement()::__PRETTY_FUNCTION__> "void Protocol::end_statement()") at assert.c:101
      #8  0x00005582bc258c62 in Protocol::end_statement (this=0x7f13700010e0) at /data/src/10.5/sql/protocol.cc:623
      #9  0x00005582bc38769b in dispatch_command (command=COM_QUERY, thd=0x7f1370000b18, packet=0x7f13701af1f9 "SELECT * FROM INFORMATION_SCHEMA.ALL_PLUGINS UNION DISTINCT SELECT * FROM INFORMATION_SCHEMA.ALL_PLUGINS", packet_length=104, is_com_multi=false, is_next_command=false) at /data/src/10.5/sql/sql_parse.cc:2459
      #10 0x00005582bc383daa in do_command (thd=0x7f1370000b18) at /data/src/10.5/sql/sql_parse.cc:1348
      #11 0x00005582bc529589 in do_handle_one_connection (connect=0x5582bfffe1b8, put_in_cache=true) at /data/src/10.5/sql/sql_connect.cc:1411
      #12 0x00005582bc5292f1 in handle_one_connection (arg=0x5582bfffe1b8) at /data/src/10.5/sql/sql_connect.cc:1313
      #13 0x00005582bca673f6 in pfs_spawn_thread (arg=0x5582bfffdde8) at /data/src/10.5/storage/perfschema/pfs.cc:2201
      #14 0x00007f1392b864a4 in start_thread (arg=0x7f1387768700) at pthread_create.c:456
      #15 0x00007f1390cbad0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
      

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              rucha174 Rucha Deodhar
              Reporter:
              elenst Elena Stepanova
              Votes:
              1 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.