[MDEV-13325] InnoDB assert dict_sys->size > 0 during ALTER TABLE Created: 2017-07-14  Updated: 2019-01-23  Resolved: 2017-07-21

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB, Storage Engine - XtraDB
Affects Version/s: 10.0, 10.1, 10.2
Fix Version/s: 10.0.32

Type: Bug Priority: Major
Reporter: Andrew Garner Assignee: Jan Lindström (Inactive)
Resolution: Fixed Votes: 0
Labels: upstream
Environment:

OS X 10.12 / Homebrew MariaDB 10.2.7


Attachments: File migration_crasher.sql    
Issue Links:
Relates
relates to MDEV-17933 slow server status - dict_sys_get_size() Closed

 Description   

During repeated runs of a migration script in a single connection on an otherwise idle server, InnoDB crashes on an assert:

2017-07-14 10:17:09 0x700004690000  InnoDB: Assertion failure in file /tmp/mariadb-20170712-4418-z03ns4/mariadb-10.2.7/storage/innobase/dict/dict0dict.cc line 1760
InnoDB: Failing assertion: dict_sys->size > 0
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
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: http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
170714 10:17:09 [ERROR] mysqld got signal 6 ;
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.2.7-MariaDB
key_buffer_size=134217728
read_buffer_size=131072
max_used_connections=1
max_threads=153
thread_count=7
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 467207 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
 
Thread pointer: 0x7fe90f10c408
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...
...skipping...
0   mysqld                              0x000000010e450c33 _Z11mysql_parseP3THDPcjP12Parser_statebb + 649
0   mysqld                              0x000000010e44e862 _Z16dispatch_command19enum_server_commandP3THDPcjbb + 5485
0   mysqld                              0x000000010e44fd64 _Z10do_commandP3THD + 892
0   mysqld                              0x000000010e51f6de _Z24do_handle_one_connectionP7CONNECT + 547
0   mysqld                              0x000000010e51f4ae handle_one_connection + 56
0   libsystem_pthread.dylib             0x00007fffbd98393b _pthread_body + 180
0   libsystem_pthread.dylib             0x00007fffbd983887 _pthread_body + 0
0   libsystem_pthread.dylib             0x00007fffbd98308d thread_start + 13
 
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x7fe910064e20): is an invalid pointer
Connection ID (thread ID): 35
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,orderby_uses_equalities=on,condition_pushdown_for_derived=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.
 
We think the query pointer is invalid, but we will try to print it anyway.
Query: ALTER TABLE `instances` ADD COLUMN `resurrection_paused` tinyint(1)

This was brought to my attention due to a similar crash on RDS on a MySQL 5.7.17 instances. AWS support pointed to this MySQL bug:

https://bugs.mysql.com/bug.php?id=84672

That was not reproducible apparently and hand-waved away as hardware troubles.

This crash similarly occurs on Percona Server 5.7. This has been encountered in multiple environments, and this sample is from my local workstation.

To reproduce I use the attached sql script and run:

#!/bin/bash
 
set -e
 
while true; do
mysql < migration_crasher.sql
done

This fails after approximately 15 seconds on my local environment.

I additionally inspected data dictionary memory concurrently and found strange output:

while true;do mysql -sse 'SHOW ENGINE INNODB STATUS\G' | egrep '^Dictionary memory allocated';sleep 0.1;done
...
Dictionary memory allocated 14342
Dictionary memory allocated 9811
Dictionary memory allocated 211
Dictionary memory allocated 20302
Dictionary memory allocated 18446744073709551123
Dictionary memory allocated 3955
Dictionary memory allocated 3334
Dictionary memory allocated 9997
Dictionary memory allocated 18446744073709540819
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (61)

I was not able to reproduce this under MariaDB 10.1. Additionally, after enabling old_alter_table I could not reproduce the problem.



 Comments   
Comment by Elena Stepanova [ 2017-07-14 ]

Are there any errors, warnings or even notes from InnoDB in the error log prior to the assertion failure?
Do you have cnf file(s) or show global variables output from the instance where the 10.2.7 crash occurred?

Comment by Andrew Garner [ 2017-07-14 ]

Full output of the log from the initial mysql_install_db until crash:

170714 12:24:21 mysqld_safe mysqld from pid file /usr/local/var/mysql/agarner-MacBook-Pro.local.pid ended
170714 12:24:21 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
2017-07-14 12:24:21 140736522109888 [Note] /usr/local/opt/mariadb/bin/mysqld (mysqld 10.2.7-MariaDB) starting as process 26055 ...
2017-07-14 12:24:21 140736522109888 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive
2017-07-14 12:24:21 140736522109888 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-07-14 12:24:21 140736522109888 [Note] InnoDB: Uses event mutexes
2017-07-14 12:24:21 140736522109888 [Note] InnoDB: Compressed tables use zlib 1.2.8
2017-07-14 12:24:21 140736522109888 [Note] InnoDB: Number of pools: 1
2017-07-14 12:24:21 140736522109888 [Note] InnoDB: Using SSE2 crc32 instructions
2017-07-14 12:24:21 140736522109888 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2017-07-14 12:24:21 140736522109888 [Note] InnoDB: Completed initialization of buffer pool
2017-07-14 12:24:21 140736522109888 [Note] InnoDB: The first innodb_system data file 'ibdata1' did not exist. A new tablespace will be created!
2017-07-14 12:24:21 140736522109888 [Note] InnoDB: Setting file './ibdata1' size to 12 MB. Physically writing the file full; Please wait ...
2017-07-14 12:24:21 140736522109888 [Note] InnoDB: File './ibdata1' size is now 12 MB.
2017-07-14 12:24:21 140736522109888 [Note] InnoDB: Setting log file ./ib_logfile101 size to 50331648 bytes
2017-07-14 12:24:21 140736522109888 [Note] InnoDB: Setting log file ./ib_logfile1 size to 50331648 bytes
2017-07-14 12:24:22 140736522109888 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
2017-07-14 12:24:22 140736522109888 [Note] InnoDB: New log files created, LSN=45892
2017-07-14 12:24:22 140736522109888 [Note] InnoDB: Doublewrite buffer not found: creating new
2017-07-14 12:24:22 140736522109888 [Note] InnoDB: Doublewrite buffer created
2017-07-14 12:24:22 140736522109888 [Note] InnoDB: 128 out of 128 rollback segments are active.
2017-07-14 12:24:22 140736522109888 [Note] InnoDB: Creating foreign key constraint system tables.
2017-07-14 12:24:22 140736522109888 [Note] InnoDB: Creating tablespace and datafile system tables.
2017-07-14 12:24:22 140736522109888 [Note] InnoDB: Creating sys_virtual system tables.
2017-07-14 12:24:22 140736522109888 [Note] InnoDB: Creating shared tablespace for temporary tables
2017-07-14 12:24:22 140736522109888 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2017-07-14 12:24:22 140736522109888 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2017-07-14 12:24:22 140736522109888 [Note] InnoDB: Waiting for purge to start
2017-07-14 12:24:22 140736522109888 [Note] InnoDB: 5.7.18 started; log sequence number 0
2017-07-14 12:24:22 140736522109888 [Note] Plugin 'FEEDBACK' is disabled.
2017-07-14 12:24:22 140736522109888 [ERROR] Could not open mysql.plugin table. Some plugins may be not loaded
2017-07-14 12:24:22 140736522109888 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
2017-07-14 12:24:22 140736522109888 [Note] Server socket created on IP: '::'.
2017-07-14 12:24:22 140736522109888 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
170714 12:24:22 mysqld_safe mysqld from pid file /usr/local/var/mysql/agarner-MacBook-Pro.local.pid ended
170714 12:24:32 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
2017-07-14 12:24:32 140736522109888 [Note] /usr/local/opt/mariadb/bin/mysqld (mysqld 10.2.7-MariaDB) starting as process 26152 ...
2017-07-14 12:24:32 140736522109888 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive
2017-07-14 12:24:32 140736522109888 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-07-14 12:24:32 140736522109888 [Note] InnoDB: Uses event mutexes
2017-07-14 12:24:32 140736522109888 [Note] InnoDB: Compressed tables use zlib 1.2.8
2017-07-14 12:24:32 140736522109888 [Note] InnoDB: Number of pools: 1
2017-07-14 12:24:32 140736522109888 [Note] InnoDB: Using SSE2 crc32 instructions
2017-07-14 12:24:32 140736522109888 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2017-07-14 12:24:32 140736522109888 [Note] InnoDB: Completed initialization of buffer pool
2017-07-14 12:24:32 140736522109888 [Note] InnoDB: Highest supported file format is Barracuda.
2017-07-14 12:24:32 140736522109888 [Note] InnoDB: 128 out of 128 rollback segments are active.
2017-07-14 12:24:32 140736522109888 [Note] InnoDB: Creating shared tablespace for temporary tables
2017-07-14 12:24:32 140736522109888 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2017-07-14 12:24:32 140736522109888 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2017-07-14 12:24:32 140736522109888 [Note] InnoDB: Waiting for purge to start
2017-07-14 12:24:32 140736522109888 [Note] InnoDB: 5.7.18 started; log sequence number 1619378
2017-07-14 12:24:32 123145500360704 [Note] InnoDB: Loading buffer pool(s) from /usr/local/var/mysql/ib_buffer_pool
2017-07-14 12:24:32 123145500360704 [Note] InnoDB: Buffer pool(s) load completed at 170714 12:24:32
2017-07-14 12:24:32 140736522109888 [Note] Plugin 'FEEDBACK' is disabled.
2017-07-14 12:24:32 140736522109888 [Note] Server socket created on IP: '::'.
2017-07-14 12:24:32 140736522109888 [Note] Reading of all Master_info entries succeded
2017-07-14 12:24:32 140736522109888 [Note] Added new Master_info '' to hash table
2017-07-14 12:24:32 140736522109888 [Note] /usr/local/opt/mariadb/bin/mysqld: ready for connections.
Version: '10.2.7-MariaDB'  socket: '/tmp/mysql.sock'  port: 3306  Homebrew
2017-07-14 12:25:28 0x70000bfd3000  InnoDB: Assertion failure in file /tmp/mariadb-20170712-4418-z03ns4/mariadb-10.2.7/storage/innobase/dict/dict0dict.cc line 1760
InnoDB: Failing assertion: dict_sys->size > 0
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
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: http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
170714 12:25:28 [ERROR] mysqld got signal 6 ;
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.2.7-MariaDB
key_buffer_size=134217728
read_buffer_size=131072
max_used_connections=1
max_threads=153
thread_count=7
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 467207 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
 
Thread pointer: 0x7fa90a82b208
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 = 0x70000bfd2e90 thread_stack 0x49000
0   mysqld                              0x000000010b7a7638 my_print_stacktrace + 60
0   mysqld                              0x000000010b1f0d2b handle_fatal_signal + 695
0   libsystem_platform.dylib            0x00007fffbd979b3a _sigtramp + 26
0   mysqld                              0x000000010bb744bf _ZZN15Query_log_event11dummy_eventEP6Stringm24enum_binlog_checksum_algE8var_name + 229944
0   libsystem_c.dylib                   0x00007fffbd7fe420 abort + 129
0   mysqld                              0x000000010b6a9979 _Z14ib_list_createv + 0
0   mysqld                              0x000000010b53ff6b _Z26dict_table_rename_in_cacheP12dict_table_tPKcm + 4246
0   mysqld                              0x000000010b5d100d _ZN11ha_innobase26commit_inplace_alter_tableEP5TABLEP18Alter_inplace_infob + 2561
0   mysqld                              0x000000010b3fab80 _Z17mysql_alter_tableP3THDPcS1_P14HA_CREATE_INFOP10TABLE_LISTP10Alter_infojP8st_orderb + 15914
0   mysqld                              0x000000010b449a1b _ZN19Sql_cmd_alter_table7executeEP3THD + 939
0   mysqld                              0x000000010b3789ed _Z21mysql_execute_commandP3THD + 3809
0   mysqld                              0x000000010b376c33 _Z11mysql_parseP3THDPcjP12Parser_statebb + 649
0   mysqld                              0x000000010b374862 _Z16dispatch_command19enum_server_commandP3THDPcjbb + 5485
0   mysqld                              0x000000010b375d64 _Z10do_commandP3THD + 892
0   mysqld                              0x000000010b4456de _Z24do_handle_one_connectionP7CONNECT + 547
0   mysqld                              0x000000010b4454ae handle_one_connection + 56
0   libsystem_pthread.dylib             0x00007fffbd98393b _pthread_body + 180
0   libsystem_pthread.dylib             0x00007fffbd983887 _pthread_body + 0
0   libsystem_pthread.dylib             0x00007fffbd98308d thread_start + 13
 
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x7fa90b05c420): is an invalid pointer
Connection ID (thread ID): 34
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,orderby_uses_equalities=on,condition_pushdown_for_derived=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.
 
We think the query pointer is invalid, but we will try to print it anyway.
Query: ALTER TABLE `instances` ADD COLUMN `resurrection_paused` tinyint(1)
 
170714 12:25:28 mysqld_safe mysqld restarted
2017-07-14 12:25:28 140736522109888 [Note] /usr/local/opt/mariadb/bin/mysqld (mysqld 10.2.7-MariaDB) starting as process 26349 ...
2017-07-14 12:25:28 140736522109888 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive
2017-07-14 12:25:28 140736522109888 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-07-14 12:25:28 140736522109888 [Note] InnoDB: Uses event mutexes
2017-07-14 12:25:28 140736522109888 [Note] InnoDB: Compressed tables use zlib 1.2.8
2017-07-14 12:25:28 140736522109888 [Note] InnoDB: Number of pools: 1
2017-07-14 12:25:28 140736522109888 [Note] InnoDB: Using SSE2 crc32 instructions
2017-07-14 12:25:28 140736522109888 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2017-07-14 12:25:28 140736522109888 [Note] InnoDB: Completed initialization of buffer pool
2017-07-14 12:25:28 140736522109888 [Note] InnoDB: Highest supported file format is Barracuda.
2017-07-14 12:25:28 140736522109888 [Note] InnoDB: Starting crash recovery from checkpoint LSN=14432741
2017-07-14 12:25:29 140736522109888 [Note] InnoDB: Ignoring data file './crash_mysqld/instances.ibd' with space ID 607. Another data file called ./crash_mysqld/#sql-ib621-184483611.ibd exists with the same space ID.
2017-07-14 12:25:29 140736522109888 [Note] InnoDB: Ignoring data file './crash_mysqld/instances.ibd' with space ID 606. Another data file called ./crash_mysqld/#sql-ib622-184483612.ibd exists with the same space ID.
2017-07-14 12:25:29 140736522109888 [Note] InnoDB: Ignoring data file './crash_mysqld/instances.ibd' with space ID 607. Another data file called ./crash_mysqld/#sql-ib621-184483611.ibd exists with the same space ID.
2017-07-14 12:25:29 140736522109888 [Note] InnoDB: Starting final batch to recover 4160 pages from redo log.
2017-07-14 12:25:30 140736522109888 [Note] InnoDB: 128 out of 128 rollback segments are active.
2017-07-14 12:25:30 140736522109888 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
2017-07-14 12:25:30 140736522109888 [Note] InnoDB: Creating shared tablespace for temporary tables
2017-07-14 12:25:30 140736522109888 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2017-07-14 12:25:30 140736522109888 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2017-07-14 12:25:30 140736522109888 [Note] InnoDB: Waiting for purge to start
2017-07-14 12:25:30 140736522109888 [Note] InnoDB: 5.7.18 started; log sequence number 14492240
2017-07-14 12:25:30 123145314869248 [Note] InnoDB: Loading buffer pool(s) from /usr/local/var/mysql/ib_buffer_pool
2017-07-14 12:25:30 123145314869248 [Note] InnoDB: Buffer pool(s) load completed at 170714 12:25:30
2017-07-14 12:25:30 140736522109888 [Note] Plugin 'FEEDBACK' is disabled.
2017-07-14 12:25:30 140736522109888 [Note] Recovering after a crash using tc.log
2017-07-14 12:25:30 140736522109888 [Note] Starting crash recovery...
2017-07-14 12:25:30 140736522109888 [Note] Crash recovery finished.
2017-07-14 12:25:30 140736522109888 [Note] Server socket created on IP: '::'.
2017-07-14 12:25:30 140736522109888 [Note] Reading of all Master_info entries succeded
2017-07-14 12:25:30 140736522109888 [Note] Added new Master_info '' to hash table
2017-07-14 12:25:30 140736522109888 [Note] /usr/local/opt/mariadb/bin/mysqld: ready for connections.
Version: '10.2.7-MariaDB'  socket: '/tmp/mysql.sock'  port: 3306  Homebrew

Using a default (empty) my.cnf with a precompiled (homebrew) MariaDB 10.2.7 for this test. Here's the running global variables:

$ mysql -sse 'SHOW GLOBAL VARIABLES'
aria_block_size	8192
aria_checkpoint_interval	30
aria_checkpoint_log_activity	1048576
aria_encrypt_tables	OFF
aria_force_start_after_recovery_failures	0
aria_group_commit	none
aria_group_commit_interval	0
aria_log_file_size	1073741824
aria_log_purge_type	immediate
aria_max_sort_file_size	9223372036853727232
aria_page_checksum	ON
aria_pagecache_age_threshold	300
aria_pagecache_buffer_size	134217728
aria_pagecache_division_limit	100
aria_pagecache_file_hash_size	512
aria_recover_options	BACKUP,QUICK
aria_repair_threads	1
aria_sort_buffer_size	268434432
aria_stats_method	nulls_unequal
aria_sync_log_dir	NEWFILE
aria_used_for_temp_tables	ON
auto_increment_increment	1
auto_increment_offset	1
autocommit	ON
automatic_sp_privileges	ON
back_log	80
basedir	/usr/local/opt/mariadb
big_tables	OFF
binlog_annotate_row_events	ON
binlog_cache_size	32768
binlog_checksum	CRC32
binlog_commit_wait_count	0
binlog_commit_wait_usec	100000
binlog_direct_non_transactional_updates	OFF
binlog_format	MIXED
binlog_optimize_thread_scheduling	ON
binlog_row_image	FULL
binlog_stmt_cache_size	32768
bulk_insert_buffer_size	8388608
character_set_client	utf8
character_set_connection	utf8
character_set_database	utf8
character_set_filesystem	binary
character_set_results	utf8
character_set_server	utf8
character_set_system	utf8
character_sets_dir	/usr/local/Cellar/mariadb/10.2.7/share/mysql/charsets/
check_constraint_checks	ON
collation_connection	utf8_general_ci
collation_database	utf8_general_ci
collation_server	utf8_general_ci
completion_type	NO_CHAIN
concurrent_insert	AUTO
connect_timeout	10
datadir	/usr/local/var/mysql/
date_format	%Y-%m-%d
datetime_format	%Y-%m-%d %H:%i:%s
deadlock_search_depth_long	15
deadlock_search_depth_short	4
deadlock_timeout_long	50000000
deadlock_timeout_short	10000
debug_no_thread_alarm	OFF
default_regex_flags
default_storage_engine	InnoDB
default_tmp_storage_engine
default_week_format	0
delay_key_write	ON
delayed_insert_limit	100
delayed_insert_timeout	300
delayed_queue_size	1000
div_precision_increment	4
encrypt_binlog	OFF
encrypt_tmp_disk_tables	OFF
encrypt_tmp_files	OFF
enforce_storage_engine
event_scheduler	OFF
expensive_subquery_limit	100
expire_logs_days	0
explicit_defaults_for_timestamp	OFF
extra_max_connections	1
extra_port	0
flush	OFF
flush_time	0
foreign_key_checks	ON
ft_boolean_syntax	+ -><()~*:""&|
ft_max_word_len	84
ft_min_word_len	4
ft_query_expansion_limit	20
ft_stopword_file	(built-in)
general_log	OFF
general_log_file	agarner-MacBook-Pro.log
group_concat_max_len	1048576
gtid_binlog_pos
gtid_binlog_state
gtid_current_pos
gtid_domain_id	0
gtid_ignore_duplicates	OFF
gtid_slave_pos
gtid_strict_mode	OFF
have_compress	YES
have_crypt	YES
have_dynamic_loading	YES
have_geometry	YES
have_openssl	YES
have_profiling	YES
have_query_cache	YES
have_rtree_keys	YES
have_ssl	DISABLED
have_symlink	YES
histogram_size	0
histogram_type	SINGLE_PREC_HB
host_cache_size	279
hostname	agarner-MacBook-Pro.local
ignore_builtin_innodb	OFF
ignore_db_dirs
init_connect
init_file
init_slave
innodb_adaptive_flushing	ON
innodb_adaptive_flushing_lwm	10.000000
innodb_adaptive_hash_index	ON
innodb_adaptive_hash_index_partitions	8
innodb_adaptive_hash_index_parts	8
innodb_adaptive_max_sleep_delay	150000
innodb_autoextend_increment	64
innodb_autoinc_lock_mode	1
innodb_background_scrub_data_check_interval	3600
innodb_background_scrub_data_compressed	OFF
innodb_background_scrub_data_interval	604800
innodb_background_scrub_data_uncompressed	OFF
innodb_buf_dump_status_frequency	0
innodb_buffer_pool_chunk_size	134217728
innodb_buffer_pool_dump_at_shutdown	ON
innodb_buffer_pool_dump_now	OFF
innodb_buffer_pool_dump_pct	25
innodb_buffer_pool_filename	ib_buffer_pool
innodb_buffer_pool_instances	1
innodb_buffer_pool_load_abort	OFF
innodb_buffer_pool_load_at_startup	ON
innodb_buffer_pool_load_now	OFF
innodb_buffer_pool_populate	OFF
innodb_buffer_pool_size	134217728
innodb_change_buffer_max_size	25
innodb_change_buffering	all
innodb_checksum_algorithm	crc32
innodb_checksums	ON
innodb_cleaner_lsn_age_factor	DEPRECATED
innodb_cmp_per_index_enabled	OFF
innodb_commit_concurrency	0
innodb_compression_algorithm	zlib
innodb_compression_default	OFF
innodb_compression_failure_threshold_pct	5
innodb_compression_level	6
innodb_compression_pad_pct_max	50
innodb_concurrency_tickets	5000
innodb_corrupt_table_action	deprecated
innodb_data_file_path	ibdata1:12M:autoextend
innodb_data_home_dir
innodb_deadlock_detect	ON
innodb_default_encryption_key_id	1
innodb_default_row_format	dynamic
innodb_defragment	OFF
innodb_defragment_fill_factor	0.900000
innodb_defragment_fill_factor_n_recs	20
innodb_defragment_frequency	40
innodb_defragment_n_pages	7
innodb_defragment_stats_accuracy	0
innodb_disable_sort_file_cache	OFF
innodb_disallow_writes	OFF
innodb_doublewrite	ON
innodb_empty_free_list_algorithm	DEPRECATED
innodb_encrypt_log	OFF
innodb_encrypt_tables	OFF
innodb_encryption_rotate_key_age	1
innodb_encryption_rotation_iops	100
innodb_encryption_threads	0
innodb_fake_changes	OFF
innodb_fast_shutdown	1
innodb_fatal_semaphore_wait_threshold	600
innodb_file_format	Barracuda
innodb_file_format_check	ON
innodb_file_format_max	Barracuda
innodb_file_per_table	ON
innodb_fill_factor	100
innodb_flush_log_at_timeout	1
innodb_flush_log_at_trx_commit	1
innodb_flush_method
innodb_flush_neighbors	1
innodb_flush_sync	ON
innodb_flushing_avg_loops	30
innodb_force_load_corrupted	OFF
innodb_force_primary_key	OFF
innodb_force_recovery	0
innodb_foreground_preflush	DEPRECATED
innodb_ft_aux_table
innodb_ft_cache_size	8000000
innodb_ft_enable_diag_print	OFF
innodb_ft_enable_stopword	ON
innodb_ft_max_token_size	84
innodb_ft_min_token_size	3
innodb_ft_num_word_optimize	2000
innodb_ft_result_cache_limit	2000000000
innodb_ft_server_stopword_table
innodb_ft_sort_pll_degree	2
innodb_ft_total_cache_size	640000000
innodb_ft_user_stopword_table
innodb_idle_flush_pct	100
innodb_immediate_scrub_data_uncompressed	OFF
innodb_instrument_semaphores	OFF
innodb_io_capacity	200
innodb_io_capacity_max	2000
innodb_kill_idle_transaction	0
innodb_large_prefix	ON
innodb_lock_schedule_algorithm	vats
innodb_lock_wait_timeout	50
innodb_locking_fake_changes	OFF
innodb_locks_unsafe_for_binlog	OFF
innodb_log_arch_dir
innodb_log_arch_expire_sec	0
innodb_log_archive	OFF
innodb_log_block_size	0
innodb_log_buffer_size	16777216
innodb_log_checksum_algorithm	DEPRECATED
innodb_log_checksums	ON
innodb_log_compressed_pages	ON
innodb_log_file_size	50331648
innodb_log_files_in_group	2
innodb_log_group_home_dir	./
innodb_log_write_ahead_size	8192
innodb_lru_scan_depth	1024
innodb_max_bitmap_file_size	0
innodb_max_changed_pages	0
innodb_max_dirty_pages_pct	75.000000
innodb_max_dirty_pages_pct_lwm	0.000000
innodb_max_purge_lag	0
innodb_max_purge_lag_delay	0
innodb_max_undo_log_size	10485760
innodb_mirrored_log_groups	0
innodb_monitor_disable
innodb_monitor_enable
innodb_monitor_reset
innodb_monitor_reset_all
innodb_mtflush_threads	8
innodb_old_blocks_pct	37
innodb_old_blocks_time	1000
innodb_online_alter_log_max_size	134217728
innodb_open_files	2000
innodb_optimize_fulltext_only	OFF
innodb_page_cleaners	1
innodb_page_size	16384
innodb_prefix_index_cluster_optimization	OFF
innodb_print_all_deadlocks	OFF
innodb_purge_batch_size	300
innodb_purge_rseg_truncate_frequency	128
innodb_purge_threads	4
innodb_random_read_ahead	OFF
innodb_read_ahead_threshold	56
innodb_read_io_threads	4
innodb_read_only	OFF
innodb_replication_delay	0
innodb_rollback_on_timeout	OFF
innodb_rollback_segments	128
innodb_scrub_log	OFF
innodb_scrub_log_speed	256
innodb_show_locks_held	0
innodb_show_verbose_locks	0
innodb_sort_buffer_size	1048576
innodb_spin_wait_delay	6
innodb_stats_auto_recalc	ON
innodb_stats_include_delete_marked	OFF
innodb_stats_method	nulls_equal
innodb_stats_modified_counter	0
innodb_stats_on_metadata	OFF
innodb_stats_persistent	ON
innodb_stats_persistent_sample_pages	20
innodb_stats_sample_pages	8
innodb_stats_traditional	ON
innodb_stats_transient_sample_pages	8
innodb_status_output	OFF
innodb_status_output_locks	OFF
innodb_strict_mode	ON
innodb_support_xa	ON
innodb_sync_array_size	1
innodb_sync_spin_loops	30
innodb_table_locks	ON
innodb_temp_data_file_path	ibtmp1:12M:autoextend
innodb_thread_concurrency	0
innodb_thread_sleep_delay	10000
innodb_tmpdir
innodb_track_changed_pages	OFF
innodb_track_redo_log_now	OFF
innodb_undo_directory	./
innodb_undo_log_truncate	OFF
innodb_undo_logs	128
innodb_undo_tablespaces	0
innodb_use_atomic_writes	ON
innodb_use_fallocate	OFF
innodb_use_global_flush_log_at_trx_commit	OFF
innodb_use_mtflush	OFF
innodb_use_native_aio	OFF
innodb_use_stacktrace	OFF
innodb_use_trim	ON
innodb_version	5.7.18
innodb_write_io_threads	4
interactive_timeout	28800
join_buffer_size	262144
join_buffer_space_limit	2097152
join_cache_level	2
keep_files_on_create	OFF
key_buffer_size	134217728
key_cache_age_threshold	300
key_cache_block_size	1024
key_cache_division_limit	100
key_cache_file_hash_size	512
key_cache_segments	0
large_files_support	ON
large_page_size	0
large_pages	OFF
lc_messages	en_US
lc_messages_dir
lc_time_names	en_US
license	GPL
local_infile	ON
lock_wait_timeout	86400
locked_in_memory	OFF
log_bin	OFF
log_bin_basename
log_bin_compress	OFF
log_bin_compress_min_len	256
log_bin_index
log_bin_trust_function_creators	OFF
log_error	/usr/local/var/mysql/agarner-MacBook-Pro.local.err
log_output	FILE
log_queries_not_using_indexes	OFF
log_slave_updates	OFF
log_slow_admin_statements	ON
log_slow_filter	admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk
log_slow_rate_limit	1
log_slow_slave_statements	ON
log_slow_verbosity
log_tc_size	24576
log_warnings	2
long_query_time	10.000000
low_priority_updates	OFF
lower_case_file_system	ON
lower_case_table_names	2
master_verify_checksum	OFF
max_allowed_packet	16777216
max_binlog_cache_size	18446744073709547520
max_binlog_size	1073741824
max_binlog_stmt_cache_size	18446744073709547520
max_connect_errors	100
max_connections	151
max_delayed_threads	20
max_digest_length	1024
max_error_count	64
max_heap_table_size	16777216
max_insert_delayed_threads	20
max_join_size	18446744073709551615
max_length_for_sort_data	1024
max_long_data_size	16777216
max_prepared_stmt_count	16382
max_recursive_iterations	4294967295
max_relay_log_size	1073741824
max_seeks_for_key	4294967295
max_session_mem_used	9223372036854775807
max_sort_length	1024
max_sp_recursion_depth	0
max_statement_time	0.000000
max_tmp_tables	32
max_user_connections	0
max_write_lock_count	4294967295
metadata_locks_cache_size	1024
metadata_locks_hash_instances	8
min_examined_row_limit	0
mrr_buffer_size	262144
multi_range_count	256
myisam_block_size	1024
myisam_data_pointer_size	6
myisam_max_sort_file_size	9223372036853727232
myisam_mmap_size	18446744073709551615
myisam_recover_options	BACKUP,QUICK
myisam_repair_threads	1
myisam_sort_buffer_size	134216704
myisam_stats_method	NULLS_UNEQUAL
myisam_use_mmap	OFF
mysql56_temporal_format	ON
net_buffer_length	16384
net_read_timeout	30
net_retry_count	10
net_write_timeout	60
old	OFF
old_alter_table	OFF
old_mode
old_passwords	OFF
open_files_limit	4162
optimizer_prune_level	1
optimizer_search_depth	62
optimizer_selectivity_sampling_limit	100
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,orderby_uses_equalities=on,condition_pushdown_for_derived=on
optimizer_use_condition_selectivity	1
performance_schema	OFF
performance_schema_accounts_size	-1
performance_schema_digests_size	-1
performance_schema_events_stages_history_long_size	-1
performance_schema_events_stages_history_size	-1
performance_schema_events_statements_history_long_size	-1
performance_schema_events_statements_history_size	-1
performance_schema_events_waits_history_long_size	-1
performance_schema_events_waits_history_size	-1
performance_schema_hosts_size	-1
performance_schema_max_cond_classes	80
performance_schema_max_cond_instances	-1
performance_schema_max_digest_length	1024
performance_schema_max_file_classes	50
performance_schema_max_file_handles	32768
performance_schema_max_file_instances	-1
performance_schema_max_mutex_classes	200
performance_schema_max_mutex_instances	-1
performance_schema_max_rwlock_classes	40
performance_schema_max_rwlock_instances	-1
performance_schema_max_socket_classes	10
performance_schema_max_socket_instances	-1
performance_schema_max_stage_classes	150
performance_schema_max_statement_classes	188
performance_schema_max_table_handles	-1
performance_schema_max_table_instances	-1
performance_schema_max_thread_classes	50
performance_schema_max_thread_instances	-1
performance_schema_session_connect_attrs_size	-1
performance_schema_setup_actors_size	100
performance_schema_setup_objects_size	100
performance_schema_users_size	-1
pid_file	/usr/local/var/mysql/agarner-MacBook-Pro.local.pid
plugin_dir	/usr/local/opt/mariadb/lib/plugin/
plugin_maturity	unknown
port	3306
preload_buffer_size	32768
profiling	OFF
profiling_history_size	15
progress_report_time	5
protocol_version	10
query_alloc_block_size	16384
query_cache_limit	1048576
query_cache_min_res_unit	4096
query_cache_size	1048576
query_cache_strip_comments	OFF
query_cache_type	OFF
query_cache_wlock_invalidate	OFF
query_prealloc_size	24576
range_alloc_block_size	4096
read_binlog_speed_limit	0
read_buffer_size	131072
read_only	OFF
read_rnd_buffer_size	262144
relay_log
relay_log_basename
relay_log_index
relay_log_info_file	relay-log.info
relay_log_purge	ON
relay_log_recovery	OFF
relay_log_space_limit	0
replicate_annotate_row_events	ON
replicate_do_db
replicate_do_table
replicate_events_marked_for_skip	REPLICATE
replicate_ignore_db
replicate_ignore_table
replicate_wild_do_table
replicate_wild_ignore_table
report_host
report_password
report_port	3306
report_user
rowid_merge_buff_size	8388608
secure_auth	ON
secure_file_priv
server_id	1
session_track_schema	ON
session_track_state_change	OFF
session_track_system_variables
session_track_transaction_info	OFF
skip_external_locking	ON
skip_name_resolve	OFF
skip_networking	OFF
skip_show_database	OFF
slave_compressed_protocol	OFF
slave_ddl_exec_mode	IDEMPOTENT
slave_domain_parallel_threads	0
slave_exec_mode	STRICT
slave_load_tmpdir	/var/folders/wg/_x14700s5hv329slgbcc88780000gn/T/
slave_max_allowed_packet	1073741824
slave_net_timeout	60
slave_parallel_max_queued	131072
slave_parallel_mode	conservative
slave_parallel_threads	0
slave_parallel_workers	0
slave_run_triggers_for_rbr	NO
slave_skip_errors	OFF
slave_sql_verify_checksum	ON
slave_transaction_retries	10
slave_type_conversions
slow_launch_time	2
slow_query_log	OFF
slow_query_log_file	agarner-MacBook-Pro-slow.log
socket	/tmp/mysql.sock
sort_buffer_size	2097152
sql_auto_is_null	OFF
sql_big_selects	ON
sql_buffer_result	OFF
sql_log_bin	ON
sql_log_off	OFF
sql_mode	STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
sql_notes	ON
sql_quote_show_create	ON
sql_safe_updates	OFF
sql_select_limit	18446744073709551615
sql_slave_skip_counter	0
sql_warnings	OFF
ssl_ca
ssl_capath
ssl_cert
ssl_cipher
ssl_crl
ssl_crlpath
ssl_key
standard_compliant_cte	ON
storage_engine	InnoDB
stored_program_cache	256
strict_password_validation	ON
sync_binlog	0
sync_frm	ON
sync_master_info	10000
sync_relay_log	10000
sync_relay_log_info	10000
system_time_zone	CDT
table_definition_cache	400
table_open_cache	2000
table_open_cache_instances	8
thread_cache_size	151
thread_concurrency	10
thread_handling	one-thread-per-connection
thread_pool_idle_timeout	60
thread_pool_max_threads	65536
thread_pool_oversubscribe	3
thread_pool_prio_kickup_timer	1000
thread_pool_priority	auto
thread_pool_size	8
thread_pool_stall_limit	500
thread_stack	299008
time_format	%H:%i:%s
time_zone	SYSTEM
timed_mutexes	OFF
tmp_disk_table_size	18446744073709551615
tmp_memory_table_size	16777216
tmp_table_size	16777216
tmpdir	/var/folders/wg/_x14700s5hv329slgbcc88780000gn/T/
transaction_alloc_block_size	8192
transaction_prealloc_size	4096
tx_isolation	REPEATABLE-READ
tx_read_only	OFF
unique_checks	ON
updatable_views_with_limit	YES
use_stat_tables	NEVER
userstat	OFF
version	10.2.7-MariaDB
version_comment	Homebrew
version_compile_machine	x86_64
version_compile_os	osx10.12
version_malloc_library	system
version_ssl_library	OpenSSL 1.0.2l  25 May 2017
wait_timeout	28800
wsrep_osu_method	TOI
wsrep_auto_increment_control	ON
wsrep_causal_reads	OFF
wsrep_certify_nonpk	ON
wsrep_cluster_address
wsrep_cluster_name	my_wsrep_cluster
wsrep_convert_lock_to_trx	OFF
wsrep_data_home_dir	/usr/local/var/mysql/
wsrep_dbug_option
wsrep_debug	OFF
wsrep_desync	OFF
wsrep_dirty_reads	OFF
wsrep_drupal_282555_workaround	OFF
wsrep_forced_binlog_format	NONE
wsrep_gtid_domain_id	0
wsrep_gtid_mode	OFF
wsrep_load_data_splitting	ON
wsrep_log_conflicts	OFF
wsrep_max_ws_rows	0
wsrep_max_ws_size	2147483647
wsrep_mysql_replication_bundle	0
wsrep_node_address
wsrep_node_incoming_address	AUTO
wsrep_node_name	agarner-MacBook-Pro.local
wsrep_notify_cmd
wsrep_on	OFF
wsrep_patch_version	wsrep_25.19
wsrep_provider	none
wsrep_provider_options
wsrep_recover	OFF
wsrep_replicate_myisam	OFF
wsrep_restart_slave	OFF
wsrep_retry_autocommit	1
wsrep_slave_fk_checks	ON
wsrep_slave_uk_checks	OFF
wsrep_slave_threads	1
wsrep_sst_auth
wsrep_sst_donor
wsrep_sst_donor_rejects_queries	OFF
wsrep_sst_method	rsync
wsrep_sst_receive_address	AUTO
wsrep_start_position	00000000-0000-0000-0000-000000000000:-1
wsrep_sync_wait	0

Comment by Elena Stepanova [ 2017-07-14 ]

Got a somewhat different, yet apparently related failure on the current 10.2 debug:

10.2 a76c05bba060f4da5ec7c56e5634eaafb6d2ebfe debug build

mysqld: /data/src/10.2/storage/innobase/dict/dict0dict.cc:2135: void dict_table_remove_from_cache_low(dict_table_t*, ulint): Assertion `dict_sys->size >= size' failed.
170714 20:23:25 [ERROR] mysqld got signal 6 ;
 
#5  0x00007f50ee3bb448 in __GI_abort () at abort.c:89
#6  0x00007f50ee3b3266 in __assert_fail_base (fmt=0x7f50ee4ebf18 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7f50f18fbbb4 "dict_sys->size >= size", file=file@entry=0x7f50f18fb340 "/data/src/10.2/storage/innobase/dict/dict0dict.cc", line=line@entry=2135, function=function@entry=0x7f50f18ffb20 <dict_table_remove_from_cache_low(dict_table_t*, unsigned long)::__PRETTY_FUNCTION__> "void dict_table_remove_from_cache_low(dict_table_t*, ulint)") at assert.c:92
#7  0x00007f50ee3b3312 in __GI___assert_fail (assertion=0x7f50f18fbbb4 "dict_sys->size >= size", file=0x7f50f18fb340 "/data/src/10.2/storage/innobase/dict/dict0dict.cc", line=2135, function=0x7f50f18ffb20 <dict_table_remove_from_cache_low(dict_table_t*, unsigned long)::__PRETTY_FUNCTION__> "void dict_table_remove_from_cache_low(dict_table_t*, ulint)") at assert.c:101
#8  0x00007f50f13e68c7 in dict_table_remove_from_cache_low (table=0x7f507c144c78, lru_evict=0) at /data/src/10.2/storage/innobase/dict/dict0dict.cc:2135
#9  0x00007f50f13e6919 in dict_table_remove_from_cache (table=0x7f507c144c78) at /data/src/10.2/storage/innobase/dict/dict0dict.cc:2149
#10 0x00007f50f126ae80 in row_drop_table_from_cache (tablename=0x7f5080111a48 "crash_mysqld/instances", table=0x7f507c144c78, trx=0x7f50d8b570d8) at /data/src/10.2/storage/innobase/row/row0mysql.cc:3516
#11 0x00007f50f126c1e5 in row_drop_table_for_mysql (name=0x7f50ec23e290 "crash_mysqld/instances", trx=0x7f50d8b570d8, drop_db=true, create_failed=0, nonatomic=true) at /data/src/10.2/storage/innobase/row/row0mysql.cc:4045
#12 0x00007f50f11332e1 in ha_innobase::delete_table (this=0x7f50800118a8, name=0x7f50ec23fdd0 "./crash_mysqld/instances") at /data/src/10.2/storage/innobase/handler/ha_innodb.cc:13756
#13 0x00007f50f0ee2436 in handler::ha_delete_table (this=0x7f50800118a8, name=0x7f50ec23fdd0 "./crash_mysqld/instances") at /data/src/10.2/sql/handler.cc:4295
#14 0x00007f50f0edcf48 in ha_delete_table (thd=0x7f5080000b00, table_type=0x7f50f3ac1fc0, path=0x7f50ec23fdd0 "./crash_mysqld/instances", db=0x7f5080011008 "crash_mysqld", alias=0x7f5080011028 "instances", generate_warning=false) at /data/src/10.2/sql/handler.cc:2320
#15 0x00007f50f0d2c0c6 in mysql_rm_table_no_locks (thd=0x7f5080000b00, tables=0x7f5080011038, if_exists=true, drop_temporary=false, drop_view=true, dont_log_query=true, dont_free_locks=false) at /data/src/10.2/sql/sql_table.cc:2466
#16 0x00007f50f0c382a1 in mysql_rm_db_internal (thd=0x7f5080000b00, db=0x7f5080011008 "crash_mysqld", if_exists=true, silent=false) at /data/src/10.2/sql/sql_db.cc:919
#17 0x00007f50f0c38976 in mysql_rm_db (thd=0x7f5080000b00, db=0x7f5080011008 "crash_mysqld", if_exists=true) at /data/src/10.2/sql/sql_db.cc:1066
#18 0x00007f50f0c6fb5c in mysql_execute_command (thd=0x7f5080000b00) at /data/src/10.2/sql/sql_parse.cc:4966
#19 0x00007f50f0c78d88 in mysql_parse (thd=0x7f5080000b00, rawbuf=0x7f5080010f48 "DROP DATABASE IF EXISTS `crash_mysqld`", length=38, parser_state=0x7f50ec241250, is_com_multi=false, is_next_command=false) at /data/src/10.2/sql/sql_parse.cc:7879
#20 0x00007f50f0c66e34 in dispatch_command (command=COM_QUERY, thd=0x7f5080000b00, packet=0x7f50800086d1 "DROP DATABASE IF EXISTS `crash_mysqld`", packet_length=38, is_com_multi=false, is_next_command=false) at /data/src/10.2/sql/sql_parse.cc:1817
#21 0x00007f50f0c65775 in do_command (thd=0x7f5080000b00) at /data/src/10.2/sql/sql_parse.cc:1362
#22 0x00007f50f0db14e7 in do_handle_one_connection (connect=0x7f50f39db990) at /data/src/10.2/sql/sql_connect.cc:1354
#23 0x00007f50f0db1274 in handle_one_connection (arg=0x7f50f39db990) at /data/src/10.2/sql/sql_connect.cc:1260
#24 0x00007f50f0288064 in start_thread (arg=0x7f50ec242700) at pthread_create.c:309
#25 0x00007f50ee46d62d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Comment by Elena Stepanova [ 2017-07-14 ]

On a release build of 10.2.7, got the exact described behavior, the assertion failure:

10.2.7 release

2017-07-14 20:59:43 0x7f6b4816b700  InnoDB: Assertion failure in file /home/buildbot/buildbot/build/storage/innobase/dict/dict0dict.cc line 1760
InnoDB: Failing assertion: dict_sys->size > 0
 
#1  0x00007f6b4b856448 in __GI_abort () at abort.c:89
#2  0x00007f6b4d4c4328 in ut_dbg_assertion_failed (expr=expr@entry=0x7f6b4ddef69a "dict_sys->size > 0", file=file@entry=0x7f6b4ddedd78 "/home/buildbot/buildbot/build/storage/innobase/dict/dict0dict.cc", line=line@entry=1760) at /home/buildbot/buildbot/build/storage/innobase/ut/ut0dbg.cc:60
#3  0x00007f6b4da9e6f8 in dict_table_rename_in_cache (table=0x7f6ad4049ed0, new_name=0x7f6ad4068bc8 "crash_mysqld/#sql-ib1180-38179927", rename_also_foreigns=rename_also_foreigns@entry=0) at /home/buildbot/buildbot/build/storage/innobase/dict/dict0dict.cc:1760
#4  0x00007f6b4d8b1b5a in commit_cache_rebuild (ctx=0x7f6ad4011118) at /home/buildbot/buildbot/build/storage/innobase/handler/handler0alter.cc:7892
#5  ha_innobase::commit_inplace_alter_table (this=0x7f6ad403b560, altered_table=0x7f6ad406dc28, ha_alter_info=0x7f6b48166c00, commit=<optimized out>) at /home/buildbot/buildbot/build/storage/innobase/handler/handler0alter.cc:8783
#6  0x00007f6b4d5f70df in mysql_inplace_alter_table (alter_ctx=0x7f6b48167830, inplace_supported=HA_ALTER_INPLACE_NO_LOCK_AFTER_PREPARE, ha_alter_info=0x7f6b48166c00, altered_table=0x7f6ad406dc28, table=0x7f6ad4065928, table_list=0x7f6ad400f070, thd=0x7f6ad40009a8, target_mdl_request=<optimized out>) at /home/buildbot/buildbot/build/sql/sql_table.cc:7343
#7  mysql_alter_table (thd=thd@entry=0x7f6ad40009a8, new_db=<optimized out>, new_name=<optimized out>, create_info=0x7f6ad400f070, create_info@entry=0x7f6b48168410, table_list=table_list@entry=0x7f6ad400f070, alter_info=0x7f6b50b36528, alter_info@entry=0x7f6b48168360, order_num=0, order=0x0, ignore=false) at /home/buildbot/buildbot/build/sql/sql_table.cc:9247
#8  0x00007f6b4d63afae in Sql_cmd_alter_table::execute (this=<optimized out>, thd=0x7f6ad40009a8) at /home/buildbot/buildbot/build/sql/sql_alter.cc:324
#9  0x00007f6b4d572159 in mysql_execute_command (thd=thd@entry=0x7f6ad40009a8) at /home/buildbot/buildbot/build/sql/sql_parse.cc:6212
#10 0x00007f6b4d5793ea in mysql_parse (thd=thd@entry=0x7f6ad40009a8, rawbuf=<optimized out>, length=67, parser_state=parser_state@entry=0x7f6b4816a280, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /home/buildbot/buildbot/build/sql/sql_parse.cc:7879
#11 0x00007f6b4d57b6ad in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7f6ad40009a8, packet=<optimized out>, packet_length=3556831008, packet_length@entry=67, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /home/buildbot/buildbot/build/sql/sql_parse.cc:1817
#12 0x00007f6b4d57bc81 in do_command (thd=0x7f6ad40009a8) at /home/buildbot/buildbot/build/sql/sql_parse.cc:1362
#13 0x00007f6b4d63803f in do_handle_one_connection (connect=connect@entry=0x7f6b512a9ea8) at /home/buildbot/buildbot/build/sql/sql_connect.cc:1354
#14 0x00007f6b4d638164 in handle_one_connection (arg=0x7f6b512a9ea8) at /home/buildbot/buildbot/build/sql/sql_connect.cc:1260
#15 0x00007f6b4c1df064 in start_thread (arg=0x7f6b4816b700) at pthread_create.c:309

and the corrupt output for Dictionary memory allocated:

Dictionary memory allocated 1219
Dictionary memory allocated 1219
Dictionary memory allocated 1219
Dictionary memory allocated 18446744073709536156
Dictionary memory allocated 18446744073709536156
Dictionary memory allocated 18446744073709545267
Dictionary memory allocated 18446744073709545267
Dictionary memory allocated 549
Dictionary memory allocated 2773
Dictionary memory allocated 18446744073709545267
Dictionary memory allocated 18446744073709545267
Dictionary memory allocated 18446744073709549941
Dictionary memory allocated 2773
Dictionary memory allocated 2773
Dictionary memory allocated 18446744073709545267
Dictionary memory allocated 18446744073709545267
Dictionary memory allocated 2773
Dictionary memory allocated 2773
Dictionary memory allocated 18446744073709545267
Dictionary memory allocated 18446744073709545267
Dictionary memory allocated 18446744073709545267
Dictionary memory allocated 549
Dictionary memory allocated 18446744073709543043
Dictionary memory allocated 18446744073709543043
Dictionary memory allocated 18446744073709543043
Dictionary memory allocated 18446744073709543043
Dictionary memory allocated 18446744073709549941
Dictionary memory allocated 18446744073709549952
ERROR 2013 (HY000): Lost connection to MySQL server at 'handshake: reading inital communication packet', system error: 107

The latter started much earlier than the assertion failure, so it might be a separate issue.

Comment by Elena Stepanova [ 2017-07-14 ]

The exact same test case as in migration_crasher.sql, just wrapped into an MTR test (please do not put it into the regression suite! it's for bugfixing purposes only)

--source include/have_innodb.inc
 
while (1)
{
    DROP DATABASE IF EXISTS `crash_mysqld`;
    CREATE DATABASE IF NOT EXISTS `crash_mysqld`;
    USE `crash_mysqld`;
    CREATE TABLE `instances` (`id` integer PRIMARY KEY AUTO_INCREMENT, `job` varchar(255) NOT NULL, `index` integer NOT NULL, `disk_cid` varchar(255) NULL UNIQUE, `deployment_id` integer NOT NULL, `vm_id` integer NULL UNIQUE) ENGINE=InnoDB;
    ALTER TABLE `instances` ADD COLUMN `state` varchar(255);
    ALTER TABLE `instances` CHANGE COLUMN `state` `state` varchar(255) NOT NULL;
    ALTER TABLE `instances` ADD COLUMN `disk_size` integer;
    ALTER TABLE `instances` DROP COLUMN `disk_cid`, DROP COLUMN `disk_size`;
    ALTER TABLE `instances` ADD COLUMN `resurrection_paused` tinyint(1);
    ALTER TABLE `instances` CHANGE COLUMN `resurrection_paused` `resurrection_paused` tinyint(1) NULL DEFAULT 0;
    ALTER TABLE `instances` ADD COLUMN `uuid` varchar(255) UNIQUE;
    ALTER TABLE `instances` ADD COLUMN `availability_zone` varchar(255), ADD COLUMN `cloud_properties` text;
    ALTER TABLE `instances` ADD COLUMN `compilation` tinyint(1) DEFAULT 0;
    ALTER TABLE `instances` ADD COLUMN `bootstrap` tinyint(1) DEFAULT 0;
    ALTER TABLE `instances` ADD COLUMN `dns_records` text;
    ALTER TABLE `instances` ADD COLUMN `spec_json` text;
    ALTER TABLE `instances` ADD COLUMN `vm_cid` varchar(255) UNIQUE, ADD COLUMN `agent_id` varchar(255) UNIQUE, ADD COLUMN `credentials_json` text, ADD COLUMN `vm_env_json` text, ADD COLUMN `trusted_certs_sha1` varchar(255) DEFAULT 'da39a3ee5e6b4b0d3255bfef95601890afd80709';
    ALTER TABLE `instances` DROP COLUMN `vm_env_json`;
    ALTER TABLE `instances` ADD COLUMN `post_start_completed` tinyint(1) DEFAULT 1;
    ALTER TABLE `instances` CHANGE COLUMN `post_start_completed` `update_completed` tinyint(1) NULL DEFAULT 1;
    ALTER TABLE `instances` CHANGE COLUMN `update_completed` `update_completed` tinyint(1) NULL DEFAULT 0;
    ALTER TABLE `instances` ADD COLUMN `ignore` tinyint(1) DEFAULT 0;
    ALTER TABLE `instances` CHANGE COLUMN `cloud_properties` `cloud_properties` longtext NULL;
    ALTER TABLE `instances` CHANGE COLUMN `dns_records` `dns_records` longtext NULL;
    ALTER TABLE `instances` CHANGE COLUMN `spec_json` `spec_json` longtext NULL;
    ALTER TABLE `instances` CHANGE COLUMN `credentials_json` `credentials_json` longtext NULL;
    ALTER TABLE `instances` ADD COLUMN `variable_set_id` integer;
    ALTER TABLE `instances` CHANGE COLUMN `variable_set_id` `variable_set_id` int(11) NOT NULL;
    ALTER TABLE `instances` ADD COLUMN `active_vm_id` integer;
    ALTER TABLE `instances` CHANGE COLUMN `vm_cid` `vm_cid_bak` varchar(255) NULL, CHANGE COLUMN `credentials_json` `credentials_json_bak` longtext NULL, CHANGE COLUMN `agent_id` `agent_id_bak` varchar(255) NULL, CHANGE COLUMN `trusted_certs_sha1` `trusted_certs_sha1_bak` varchar(255) NULL DEFAULT 'da39a3ee5e6b4b0d3255bfef95601890afd80709';
}

On my machine it fails within a few minutes if I run the test on disk, and within ~30 seconds if I run it in shm.

The assertion on ALTER TABLE happens on non-debug builds, all of 10.0/10.1 (only with InnoDB plugin), 10.2, MySQL 5.6, MySQL 5.7, Percona Server 5.7.
The assertion on DROP DATABASE happens on debug builds, all of 10.0/10.1 (both XtraDB and InnoDB), 10.2, MySQL 5.6, MySQL 5.7. I didn't try debug builds of Percona server.

I didn't get the failure on MariaDB 5.5.

andrew.garner, many thanks for the report and the reproducible test case.

Comment by Jan Lindström (Inactive) [ 2017-07-21 ]

commit 92cbe388b6839bc1e21abb9859c54c58fc1769cf
Author: Jan Lindström <jan.lindstrom@mariadb.com>
Date: Fri Jul 21 16:05:20 2017 +0300

MDEV-13325: InnoDB assert dict_sys->size > 0 during ALTER TABLE

Problem was that dict_sys->size tries to maintain used memory
occupied by the data dictionary table and index objects.
However at least on table objects table->heap size can increase
between when table object is inserted to dict_sys and when
it is removed from dict_sys causing inconsistency on amount
of memory added to and removed from dict_sys->size variable.

Removed unnecessary dict_sys:size variable as it is really
used only for status output.

Introduced dict_sys_get_size function to calculate memory
occupied by the data dictionary table and index objects
that is then used on show engine innodb output.

dict_table_add_to_cache(),
dict_table_rename_in_cache(),
dict_table_remove_from_cache_low(),
dict_index_remove_from_cache_low(),
Remove size calculation.

srv_printf_innodb_monitor(): Use dict_sys_get_size function to
get dictionary memory allocated.

xtradb_internal_hash_tables_fill_table(): Use dict_sys_get_size
function to get dictionary memory allocated.

Generated at Thu Feb 08 08:04:42 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.