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

InnoDB: Assertion failure row0sel.cc line 3966 exception 0x80000003

    XMLWordPrintable

    Details

      Description

      MariaDB Server crashes during select

      2020-05-31 12:27:44 0x8ec  InnoDB: Assertion failure in file D:\winx64-packages\build\src\storage\innobase\row\row0sel.cc line 3966
      InnoDB: We intentionally generate a memory trap.
      InnoDB: Submit a detailed bug report to https://jira.mariadb.org/
      InnoDB: If you get repeated assertion failures or crashes, even
      InnoDB: immediately after the mysqld startup, there may be
      InnoDB: corruption in the InnoDB tablespace. Please refer to
      InnoDB: https://mariadb.com/kb/en/library/innodb-recovery-modes/
      InnoDB: about forcing recovery.
      200531 12:27:44 [ERROR] mysqld got exception 0x80000003 ;
      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 https://mariadb.com/kb/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.4.13-MariaDB-log
      key_buffer_size=134217728
      read_buffer_size=131072
      max_used_connections=12
      max_threads=65537
      thread_count=9
      It is possible that mysqld could use up to 
      key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 141521 K  bytes of memory
      Hope that's ok; if not, decrease some variables in the equation.
       
      Thread pointer: 0x1f23fd98a18
      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...
      mysqld.exe!my_sigabrt_handler()[my_thr_init.c:485]
      ucrtbase.dll!raise()
      ucrtbase.dll!abort()
      mysqld.exe!ut_dbg_assertion_failed()[ut0dbg.cc:60]
      mysqld.exe!row_search_idx_cond_check()[row0sel.cc:3966]
      mysqld.exe!row_search_mvcc()[row0sel.cc:5266]
      mysqld.exe!ha_innobase::general_fetch()[ha_innodb.cc:9546]
      mysqld.exe!handler::ha_index_prev()[handler.cc:2967]
      mysqld.exe!join_read_prev_same()[sql_select.cc:21213]
      mysqld.exe!sub_select()[sql_select.cc:20385]
      mysqld.exe!do_select()[sql_select.cc:19904]
      mysqld.exe!JOIN::exec_inner()[sql_select.cc:4459]
      mysqld.exe!JOIN::exec()[sql_select.cc:4242]
      mysqld.exe!mysql_select()[sql_select.cc:4675]
      mysqld.exe!handle_select()[sql_select.cc:410]
      mysqld.exe!execute_sqlcom_select()[sql_parse.cc:6359]
      mysqld.exe!mysql_execute_command()[sql_parse.cc:3898]
      mysqld.exe!mysql_parse()[sql_parse.cc:7904]
      mysqld.exe!dispatch_command()[sql_parse.cc:1844]
      mysqld.exe!do_command()[sql_parse.cc:1359]
      mysqld.exe!threadpool_process_request()[threadpool_common.cc:365]
      mysqld.exe!tp_callback()[threadpool_common.cc:192]
      ntdll.dll!RtlReleaseSRWLockExclusive()
      ntdll.dll!RtlReleaseSRWLockExclusive()
      KERNEL32.DLL!BaseThreadInitThunk()
      ntdll.dll!RtlUserThreadStart()
       
      Trying to get some variables.
      Some pointers may be invalid and cause the dump to abort.
      Query (0x1f240537180): select a.session_id, a.user
      				from redcap_log_view a
      				inner join redcap_user_rights u ON a.user = u.username AND u.project_id = a.project_id
      				inner join redcap_user_information i ON i.username = u.username
      				left join redcap_user_roles ur ON u.role_id = ur.role_id
      				where a.project_id = 6108
      				and a.log_view_id >= 13349060
      				and a.user != 'exxxxxx'
      				and a.event_id = 31089
      				and a.record = '878096793'
      				and a.form_name = 'sedation'
      				and a.page in ('DataEntry/index.php', 'ProjectGeneral/keep_alive.php', 'DataEntry/check_unique_ajax.php', 
      							   'DataEntry/file_download.php', 'DataEntry/file_upload.php', 'DataEntry/file_delete.php')
      				and (((u.data_entry like '%[sedation,1]%' OR u.data_entry like '%[sedation,3]%') AND ur.role_id IS NULL) 
      					OR ((ur.data_entry LIKE '%[sedation,1]%' OR ur.data_entry LIKE '%[sedation,3]%') AND ur.role_id IS NOT NULL)
      					OR i.super_user = 1)
      				and a.log_view_id = (select b.log_view_id from redcap_log_view b where b.user = a.user order by b.log_view_id desc limit 1)
      				
      				order by a.log_view_id desc limit 1
      Connection ID (thread ID): 21184
      Status: KILL_CONNECTION
       
      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=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=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.
      Writing a core file at G:\MariaDB\MariaDB 10.4\data\
      

      ----------
      contents of my.ini
      ----------

      [mysqld]
      datadir=G:/MariaDB/MariaDB 10.4/data
      port=3306
      innodb_buffer_pool_size=20480M
      character-set-server=utf8
      performance_schema=on
      max_connections=400
       
      # The Pipe the MySQL Server will use
      socket=MariaDB104
      #shared_memory_base_name=MariaDB104
      general-log=0
      general_log_file="D:/MariaDB/MariaDB104/logs/general.log"
      slow-query-log=1
      slow_query_log_file="D:/MariaDB/MariaDB104/logs/slow-query.log"
      long_query_time=20
       
      # Error Logging.
      log-error="D:/MariaDB/MariaDB104/logs/error.log"
      log-warnings = 2
       
      # Binary Logging.
      # >> Removed the last sud-dir (binlog) <<
      #log-bin = "D:/MySQL/MySQL56/binlog/binlog"
      log-bin = "D:/MariaDB/MariaDB104/binlog/binlog"
      expire_logs_days = 28
      #binlog-ignore-db = tch
      binlog_format = row
       
      # Temporary location (multiple locations cas be set ';' is separator)
      tmpdir=D:/MariaDB/MariaDB104/temp
       
      # Query cache is used to cache SELECT results and later return them
      # without actual executing the same query once again. Having the query
      # cache enabled may result in significant speed improvements, if your
      # have a lot of identical queries and rarely changing tables. See the
      # "Qcache_lowmem_prunes" status variable to check if the current value
      # is high enough for your load.
      # Note: In case your tables change very often or if your queries are
      # textually different every time, the query cache may result in a
      # slowdown instead of a performance improvement.
      # query_cache_size=192M
       
      # Size of each log file in a log group. You should set the combined size
      # of log files to about 25%-100% of your buffer pool size to avoid
      # unneeded buffer pool flush activity on log file overwrite. However,
      # note that a larger logfile size will increase the time needed for the
      # recovery process.
      innodb_log_file_size=512M
      innodb_log_group_home_dir = "F:/MariaDB/MariaDB104/redo"
      innodb_log_files_in_group = 4
       
      # Number of threads allowed inside the InnoDB kernel. The optimal value
      # depends highly on the application, hardware as well as the OS
      # scheduler properties. A too high value may lead to thread thrashing.
      # innodb_read_io_threads = 16
      # innodb_write_io_threads = 16
       
      # Set the query cache type. 0 for OFF, 1 for ON and 2 for DEMAND.
      # query_cache_type=0
       
      # The number of table definitions (from .frm files) that can be stored in the definition cache.
      # If you use a large number of tables, you can create a large table definition cache to speed up opening of tables.
      # The table definition cache takes less space and does not use file descriptors, unlike the normal table cache.
      # The minimum and default values are both 400.
      table_definition_cache=1400
       
      # Enable the even-scheduler
      # event-scheduler = ON
       
      # Set server-id in order to read binlog with remote options
      server-id = 1 # or something else unique
       
      # Secure File Priv.
      #secure-file-priv="C:\ProgramData\MySQL\MySQL Server 5.7\Uploads"
      secure-file-priv="G:/MariaDB/MariaDB 10.4/spool"
       
      [client]
      port=3306
      plugin-dir=D:/MariaDB/MariaDB 10.4/lib/plugin
      

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              danblack Daniel Black
              Reporter:
              rigo.munguia Rigoberto Munguia
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: