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

Assertion `save_errno' in maria_write or ER_GET_ERRNO / 122 upon use of internal temp table

    XMLWordPrintable

Details

    Description

      SET big_tables= on;
      SET NAMES 'sjis';
      SELECT 'למטה' AS a UNION SELECT 'Wetter' AS a;
      

      In higher versions big_tables is deprecated and causes a warning, but as of now, even in 10.9 it still has the same effect. Alternatively, in 10.5+ tmp_memory_table_size=0 can be used for the same purpose (to trigger creation of an Aria tmp table).

      10.2 5a8766a9 debug

      mysqld: /data/src/10.2/storage/maria/ma_write.c:415: maria_write: Assertion `save_errno' failed.
      220408 18:23:24 [ERROR] mysqld got signal 6 ;
       
      #6  0x00007f603a26e40f in __assert_fail_base (fmt=0x7f603a3d7128 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x563af292cf97 "save_errno", file=0x563af292ce60 "/data/src/10.2/storage/maria/ma_write.c", line=415, function=<optimized out>) at assert.c:92
      #7  0x00007f603a27d662 in __GI___assert_fail (assertion=0x563af292cf97 "save_errno", file=0x563af292ce60 "/data/src/10.2/storage/maria/ma_write.c", line=415, function=0x563af292d5e8 <__PRETTY_FUNCTION__.8> "maria_write") at assert.c:101
      #8  0x0000563af24e03f7 in maria_write (info=0x7f60240905e0, record=0x7f60240069b0 "\377\006Wetter\327?") at /data/src/10.2/storage/maria/ma_write.c:415
      #9  0x0000563af2468d3d in ha_maria::write_row (this=0x7f602417d838, buf=0x7f60240069b0 "\377\006Wetter\327?") at /data/src/10.2/storage/maria/ha_maria.cc:1293
      #10 0x0000563af1cf4979 in handler::ha_write_tmp_row (this=0x7f602417d838, buf=0x7f60240069b0 "\377\006Wetter\327?") at /data/src/10.2/sql/sql_class.h:5985
      #11 0x0000563af1d5561e in select_union::send_data (this=0x7f6024013228, values=...) at /data/src/10.2/sql/sql_union.cc:80
      #12 0x0000563af1cb3757 in JOIN::exec_inner (this=0x7f6024013960) at /data/src/10.2/sql/sql_select.cc:3527
      #13 0x0000563af1cb31c8 in JOIN::exec (this=0x7f6024013960) at /data/src/10.2/sql/sql_select.cc:3446
      #14 0x0000563af1d58d87 in st_select_lex_unit::exec (this=0x7f6024004988) at /data/src/10.2/sql/sql_union.cc:1074
      #15 0x0000563af1d55430 in mysql_union (thd=0x7f6024000d90, lex=0x7f60240048c8, result=0x7f6024013208, unit=0x7f6024004988, setup_tables_done_option=0) at /data/src/10.2/sql/sql_union.cc:42
      #16 0x0000563af1ca84a3 in handle_select (thd=0x7f6024000d90, lex=0x7f60240048c8, result=0x7f6024013208, setup_tables_done_option=0) at /data/src/10.2/sql/sql_select.cc:351
      #17 0x0000563af1c73acc in execute_sqlcom_select (thd=0x7f6024000d90, all_tables=0x0) at /data/src/10.2/sql/sql_parse.cc:6271
      #18 0x0000563af1c6a663 in mysql_execute_command (thd=0x7f6024000d90) at /data/src/10.2/sql/sql_parse.cc:3582
      #19 0x0000563af1c777e2 in mysql_parse (thd=0x7f6024000d90, rawbuf=0x7f6024012708 "SELECT '\327\234\327\236\327\230\327\224' AS a UNION SELECT 'Wetter' AS a", length=49, parser_state=0x7f60343d95e0, is_com_multi=false, is_next_command=false) at /data/src/10.2/sql/sql_parse.cc:7793
      #20 0x0000563af1c65b85 in dispatch_command (command=COM_QUERY, thd=0x7f6024000d90, packet=0x7f6024008b61 "SELECT '\327\234\327\236\327\230\327\224' AS a UNION SELECT 'Wetter' AS a", packet_length=49, is_com_multi=false, is_next_command=false) at /data/src/10.2/sql/sql_parse.cc:1827
      #21 0x0000563af1c6469e in do_command (thd=0x7f6024000d90) at /data/src/10.2/sql/sql_parse.cc:1381
      #22 0x0000563af1dbc4a4 in do_handle_one_connection (connect=0x563af5696630) at /data/src/10.2/sql/sql_connect.cc:1336
      #23 0x0000563af1dbc218 in handle_one_connection (arg=0x563af5696630) at /data/src/10.2/sql/sql_connect.cc:1241
      #24 0x0000563af25c46eb in pfs_spawn_thread (arg=0x563af56823d0) at /data/src/10.2/storage/perfschema/pfs.cc:1869
      #25 0x00007f603a741ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #26 0x00007f603a346def in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      10.2 non-debug 5a8766a9

      query 'SELECT 'למטה' AS a UNION SELECT 'Wetter' AS a' failed: 1030: Got error 122 "Internal (unspecified) error in handler" from storage engine Aria
      

      Not reproducible without Aria for temporary tables:

      10.3 debug -DUSE_ARIA_FOR_TMP_TABLES=OFF

      SELECT @@aria_used_for_temp_tables;
      @@aria_used_for_temp_tables
      0
      SET big_tables= on;
      SET NAMES 'sjis';
      SELECT 'למטה' AS a UNION SELECT 'Wetter' AS a;
      a
      למט�?
      Wetter
      

      (It returns some half-garbage, given the character set conversion I can't evaluate whether it's correct, but at least it appears the same regardless whether on-disk tables are used or not).

      Attachments

        Activity

          People

            monty Michael Widenius
            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.