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

Segmentation fault on INSERT

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.3.12, 5.5.45, 10.0.21, 10.1.6
    • Fix Version/s: 5.5.47, 10.0.23, 10.1.9
    • Component/s: OTHER
    • Labels:
      None
    • Environment:
      Debian 7.8 (kernel=3.2.0-4-amd64), 16GB RAM
      CentOS 7.1 (kernel=3.10.0-229.11.1.el7.x86_64), 8GB RAM
    • Sprint:
      10.1.9-2

      Description

      I have got a segmentation fault error with query.
      A client take a message - Error Code: 2013. Lost connection to MySQL server during query.

      Query

      insert into _tmp (id, r)
      select id,p from
      (
        select id, 
        d+d+d+d+d+d+d+d+d+d+d+d+d+d+d+d+d+d+d+d+d+d+d+d+d+d+d as p
        from (
          select id, if(r=r,1,2) as d
          from _tmp
        ) a
      ) b
      on duplicate key update r=p;

      Table _tmp has a structure:

      CREATE TABLE `_tmp` (
        `id` int(10) unsigned NOT NULL,
        `r` float NOT NULL,
        PRIMARY KEY (`id`)
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

      But if simplify query the error will go away.
      For example: replace one or more '+d' on '+1'
      or replace 'r=r' on 'r=1'
      or replace 'r=p' on 'r=1'.

      The error is repeatable on MariaDB 5.5.45, 10.0.21, 10.1.6.
      There is no error on Mysql 5.5 and 5.0.

      Error log shows:

      150817  4:15:17 [ERROR] mysqld got signal 11 ;
       
      Server version: 10.1.6-MariaDB-1~wheezy-log
      key_buffer_size=134217728
      read_buffer_size=2097152
      max_used_connections=3
      max_threads=102
      thread_count=2
      It is possible that mysqld could use up to
      key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 759823 K  bytes of memory
      Hope that's ok; if not, decrease some variables in the equation.
       
      Thread pointer: 0x0x7f333dbde008
      Attempting backtrace. You can use the following information to find out
      where mysqld died. If you see no messages after this, something went
      terribly wrong...
      stack_bottom = 0x7f3370172e30 thread_stack 0x48000
      /usr/sbin/mysqld(my_print_stacktrace+0x2b)[0x7f3370cb658b]
      /usr/sbin/mysqld(handle_fatal_signal+0x455)[0x7f337084de05]
      /lib/x86_64-linux-gnu/libpthread.so.0(+0xf0a0)[0x7f336fe3f0a0]
       
      Trying to get some variables.
      Some pointers may be invalid and cause the dump to abort.
      Query (0x7f335602d020): is an invalid pointer
      Connection ID (thread ID): 5
      Status: NOT_KILLED

      ------------------------------------------

      Binary log mariadb-bin.000001 is in the private uploads.

        Attachments

          Activity

            People

            Assignee:
            sanja Oleksandr Byelkin
            Reporter:
            QweR/hi Konstantin
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Git Integration