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

Fatal crash of mariadb when using JSON functionality

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 10.1.10
    • Fix Version/s: 10.0.24, 10.1.12
    • Labels:
    • Environment:
      os: ubuntu 14.04
      Mariadb installation: mariadb-10.1.10-linux-x86_64.tar.gz
      unixodbc: /var/cache/apt/archives/unixodbc_2.3.1-3_amd64.deb

      Description

      Scenario:

      Install the functions (just 1 shown, complete set installed as indicated in documentation) :
      create function jsonvalue returns string soname 'ha_connect.so';
      Run the function:

      select jsonvalue(3.14);

      Result: mysqld dies with sig 11

      Error:

      Version: '10.1.10-MariaDB-log'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MariaDB Server
      160121 16:21:36 [ERROR] mysqld got signal 11 ;
      This could be because you hit a bug. It is also possible that this binary
      or one of the libraries it was linked against is corrupt, improperly built,
      or misconfigured. This error can also be caused by malfunctioning hardware.
       
      To report this bug, see http://kb.askmonty.org/en/reporting-bugs
       
      We will try our best to scrape up some info that will hopefully help
      diagnose the problem, but since we have already crashed,
      something is definitely wrong and this may fail.
       
      Server version: 10.1.10-MariaDB-log
      key_buffer_size=134217728
      read_buffer_size=134217728
      max_used_connections=1
      max_threads=252
      thread_count=2
      It is possible that mysqld could use up to
      key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 66196487 K  bytes of memory
      Hope that's ok; if not, decrease some variables in the equation.
       
      Thread pointer: 0x0x7f2b30383008
      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 = 0x7f2b4a6fce88 thread_stack 0x100000
      ./mysqld(my_print_stacktrace+0x2e)[0xbfcb7e]
      ./mysqld(handle_fatal_signal+0x464)[0x762094]
      /lib/x86_64-linux-gnu/libpthread.so.0(+0x10d10)[0x7f2b4ddb8d10]
       
      Trying to get some variables.
      Some pointers may be invalid and cause the dump to abort.
      Query (0x7f2b28637020): is an invalid pointer
      Connection ID (thread ID): 4
      Status: NOT_KILLED
       
      Optimizer switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on
       
      The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
      information that should help you find out what is causing the crash.

      Config

      [client]
      port            = 3306
      socket          = /var/run/mysqld/mysqld.sock
       
      [mysqld_safe]
      socket          = /var/run/mysqld/mysqld.sock
      nice            = 0
       
      [mysqld]
      innodb         = on
      event_scheduler    = on
      default-storage-engine = InnoDB
      user            = mysql
      pid-file        = /var/run/mysqld/mysqld.pid
      socket          = /var/run/mysqld/mysqld.sock
      port            = 3306
      basedir         = /usr
      datadir         = /var/lib/mysql
      tmpdir          = /tmp location
      lc-messages-dir = /usr/share/mysql
      skip-external-locking
      #
      # Instead of skip-networking the default is now to listen only on
      # localhost which is more compatible and is not less secure.
      #bind-address            = 127.0.0.1
      #
      key_buffer_size      = 128M
      sort_buffer_size    = 128M
      read_buffer_size    = 128M
      read_rnd_buffer_size = 128M
      max_allowed_packet      = 16M
      thread_stack            = 1024K
      thread_cache_size       = 0
      # This replaces the startup script and checks MyISAM tables if needed
      # the first time they are touched
      myisam-recover         = BACKUP
      max_connections        = 250
      table_cache            = 1024
      table_open_cache    = 512
      thread_concurrency     = 8
      #
      # * Query Cache Configuration
      #
      query_cache_type     = 1
      query_cache_limit       = 128K
      query_cache_size        = 4M
       
      # Logging:
      #
      # Error log - should be very few entries.
      #
      log_error = /var/log/mysql/error.log
       
      slow_query_log        = On
      slow_query_log_file      = /var/log/mysql/mysql-slow.log
      long_query_time = 60
      log_queries_not_using_indexes
       
      #Allow command line access to the database:
      plugin-load-add         = unix_socket=auth_socket.so
       
      #Master slave settings:
      #Master:
      server-id              = 1
      log_bin              = /var/log/mysql/mysql-bin.log
      expire_logs_days        = 10
      max_binlog_size         = 100M
      binlog_do_db           = adacado
      binlog_do_db            = adacado_dimension_replica
      binlog_format           = mixed
       
      # Send feedback to MariaDB.org:
      feedback = Off
       
      #InnoDB settings:
      [InnoDB]
      innodb_buffer_pool_size = 1017287424
      innodb_buffer_pool_instances = 4
      innodb_log_file_size = 64M
      innodb_log_files_in_group = 4
      innodb_log_buffer_size = 32M
      innodb_flush_log_at_trx_commit = 1
      innodb_file_per_table = On
      innodb_file_format = Barracuda
      # InnoDB Performance options:
      innodb_thread_concurrency = 8
      innodb_concurrency_tickets = 5000
      innodb_adaptive_hash_index = On
      innodb_adaptive_hash_index_parts = 16
       
      [mysqldump]
      quick
      quote-names
      max_allowed_packet      = 16M
       
      [mysql]
       
      [isamchk]
      key_buffer              = 16M

        Attachments

          Activity

            People

            Assignee:
            bertrandop Olivier Bertrand
            Reporter:
            Norbert van Nobelen Norbert van Nobelen
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: