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

Memory corruption assertion failure for INSERT ... SELECT involving two Spider tables

    XMLWordPrintable

Details

    Description

      Statement like this:

      INSERT INTO spider_table (<columns list> )
        SELECT <constant>, Id, UNIX_TIMESTAMP(), <columns list>
        FROM other_spider_table WHERE ...;
      

      trying to insert some 20+ rows ends up with the malloc-related assertion failure:

      ...
      mariadb-archive-0 mysqld corrupted size vs. prev_size
      mariadb-archive-0 mysqld 210226 14:25:16 [ERROR] mysqld got signal 6 ;
      mariadb-archive-0 mysqld This could be because you hit a bug. It is also possible that this binary
      mariadb-archive-0 mysqld or one of the libraries it was linked against is corrupt, improperly built,
      mariadb-archive-0 mysqld or misconfigured. This error can also be caused by malfunctioning hardware.
      mariadb-archive-0 mysqld
      mariadb-archive-0 mysqld To report this bug, see https://mariadb.com/kb/en/reporting-bugs
      mariadb-archive-0 mysqld
      mariadb-archive-0 mysqld We will try our best to scrape up some info that will hopefully help
      mariadb-archive-0 mysqld diagnose the problem, but since we have already crashed,
      mariadb-archive-0 mysqld something is definitely wrong and this may fail.
      mariadb-archive-0 mysqld
      mariadb-archive-0 mysqld Server version: 10.4.17-MariaDB-1:10.4.17+maria~focal-log
      mariadb-archive-0 mysqld key_buffer_size=134217728
      mariadb-archive-0 mysqld read_buffer_size=2097152
      mariadb-archive-0 mysqld max_used_connections=24
      mariadb-archive-0 mysqld max_threads=3002
      mariadb-archive-0 mysqld thread_count=51
      mariadb-archive-0 mysqld It is possible that mysqld could use up to
      mariadb-archive-0 mysqld key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 18649564 K  bytes of memory
      mariadb-archive-0 mysqld Hope that's ok; if not, decrease some variables in the equation.
      mariadb-archive-0 mysqld
      mariadb-archive-0 mysqld Thread pointer: 0x7fc310000c48
      mariadb-archive-0 mysqld Attempting backtrace. You can use the following information to find out
      mariadb-archive-0 mysqld where mysqld died. If you see no messages after this, something went
      mariadb-archive-0 mysqld terribly wrong...
      mariadb-archive-0 mysqld stack_bottom = 0x7fc43429add8 thread_stack 0x49000
      mariadb-archive-0 mysqld 2021-02-26 14:25:36 0 [Note] InnoDB: Buffer pool(s) load completed at 210226 14:25:36
      ...
      

      There is no assertion failure if we LIMIT number of rows to, say, 5, or if we use intermediate non-Spider table to store SELECT result.

      I can not reproduce this locally outside of Docker image. Getting the core dump in a hope to see more details about the place in the code where assertion failure happens is problematic, as usual steps seem not to work for this Docker image (suggestions are appreciated).

      Attachments

        Activity

          People

            valerii Valerii Kravchuk
            valerii Valerii Kravchuk
            Votes:
            0 Vote for this issue
            Watchers:
            5 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.