[MDEV-13490] Crash after the second attempt to install Tokudb with huge pages Created: 2017-08-10  Updated: 2018-10-25

Status: Confirmed
Project: MariaDB Server
Component/s: Storage Engine - TokuDB
Affects Version/s: 10.0, 10.1, 10.2
Fix Version/s: 10.2

Type: Bug Priority: Minor
Reporter: Alice Sherepa Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: upstream
Environment:

Ubuntu 16.04


Issue Links:
Relates
relates to MDEV-17543 Crash after the second attempt to ins... Open

 Description   

After attempt to install TOKUDB with transparent huge pages server returns error (as it expected), but if to try it second time, server crashes.

install soname 'ha_tokudb';
install soname 'ha_tokudb';

Version: '10.2.8-MariaDB-debug'  socket: '/tmp/mysql.sock'  port: 3322  Source distribution
Transparent huge pages are enabled, according to /sys/kernel/mm/transparent_hugepage/enabled
Transparent huge pages appear to be enabled according to mincore()
2017-08-09 15:21:41 139779539527424 [ERROR] TokuDB: Huge pages are enabled, disable them before continuing
 
2017-08-09 15:21:41 139779539527424 [ERROR] ************************************************************
2017-08-09 15:21:41 139779539527424 [ERROR]                                                             
2017-08-09 15:21:41 139779539527424 [ERROR]                         @@@@@@@@@@@                         
2017-08-09 15:21:41 139779539527424 [ERROR]                       @@'         '@@                       
2017-08-09 15:21:41 139779539527424 [ERROR]                      @@    _     _  @@                      
2017-08-09 15:21:41 139779539527424 [ERROR]                      |    (.)   (.)  |                      
2017-08-09 15:21:41 139779539527424 [ERROR]                      |             ` |                      
2017-08-09 15:21:41 139779539527424 [ERROR]                      |        >    ' |                      
2017-08-09 15:21:41 139779539527424 [ERROR]                      |     .----.    |                      
2017-08-09 15:21:41 139779539527424 [ERROR]                      ..   |.----.|  ..                      
2017-08-09 15:21:41 139779539527424 [ERROR]                       ..  '      ' ..                       
2017-08-09 15:21:41 139779539527424 [ERROR]                         .._______,.                         
2017-08-09 15:21:41 139779539527424 [ERROR]                                                             
2017-08-09 15:21:41 139779539527424 [ERROR] TokuDB will not run with transparent huge pages enabled.        
2017-08-09 15:21:41 139779539527424 [ERROR] Please disable them to continue.                            
2017-08-09 15:21:41 139779539527424 [ERROR] (echo never > /sys/kernel/mm/transparent_hugepage/enabled)  
2017-08-09 15:21:41 139779539527424 [ERROR]                                                             
2017-08-09 15:21:41 139779539527424 [ERROR] ************************************************************
2017-08-09 15:21:41 139779539527424 [ERROR] Plugin 'TokuDB' init function returned error.
2017-08-09 15:21:41 139779539527424 [ERROR] Plugin 'TokuDB' registration as a STORAGE ENGINE failed.
Handlerton assertion failed, no env, /home/alice/git/10.2/storage/tokudb/tokudb_background.cc, 226, initialize, _job_manager == NULL (errno=11)
: Resource temporarily unavailable
170809 15:21:46 [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.8-MariaDB-debug
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 = 467292 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
 
Thread pointer: 0x7f20a0000b00
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 = 0x7f20f5ccdec0 thread_stack 0x49000
/data/bld/10.2/bin/mysqld(my_print_stacktrace+0x38)[0x561b7ed90408]
/data/bld/10.2/bin/mysqld(handle_fatal_signal+0x3a3)[0x561b7e61e1c4]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7f210f904390]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x38)[0x7f210ecbd428]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x16a)[0x7f210ecbf02a]
/data/bld/10.2/lib/plugin/ha_tokudb.so(+0xa6f23)[0x7f20ff6ccf23]
/data/bld/10.2/lib/plugin/ha_tokudb.so(_ZN6tokudb10background10initializeEv+0x3f)[0x7f20ff6d9480]
/data/bld/10.2/lib/plugin/ha_tokudb.so(+0xa73a5)[0x7f20ff6cd3a5]
/data/bld/10.2/bin/mysqld(_Z24ha_initialize_handlertonP13st_plugin_int+0xfc)[0x561b7e620206]
mysys/stacktrace.c:267(my_print_stacktrace)[0x561b7e3caf75]
sql/sql_plugin.cc:2077(finalize_install(THD*, TABLE*, st_mysql_lex_string const*, int*, char**))[0x561b7e3ccefa]
sql/sql_plugin.cc:2182(mysql_install_plugin(THD*, st_mysql_lex_string const*, st_mysql_lex_string const*))[0x561b7e3cd488]
sql/sql_parse.cc:6122(mysql_execute_command(THD*))[0x561b7e3baeff]
sql/sql_parse.cc:7880(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x561b7e3c007b]
sql/sql_parse.cc:1819(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x561b7e3ade2e]
sql/sql_parse.cc:1362(do_command(THD*))[0x561b7e3ac768]
sql/sql_connect.cc:1354(do_handle_one_connection(CONNECT*))[0x561b7e4f8156]
sql/sql_connect.cc:1261(handle_one_connection)[0x561b7e4f7ed6]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f210f8fa6ba]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7f210ed8f3dd]
 
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x7f20a0010ea8): install soname 'ha_tokudb'
Connection ID (thread ID): 8
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



 Comments   
Comment by Elena Stepanova [ 2017-08-10 ]

It is also reproducible with Percona Server 5.7, only you can't use install soname there, instead you would have to install some TokuDB plugins individually. The following seems to be enough, although maybe excessive:

install plugin TokuDB_trx soname 'ha_tokudb.so';
install plugin TokuDB_lock_waits soname 'ha_tokudb.so';
install plugin TokuDB_locks soname 'ha_tokudb.so';
install plugin TokuDB_file_map soname 'ha_tokudb.so';
install plugin TokuDB_fractal_tree_info soname 'ha_tokudb.so';
install plugin TokuDB_fractal_tree_block_map soname 'ha_tokudb.so';
install plugin TokuDB_background_job_status soname 'ha_tokudb.so';
install plugin TokuDB soname 'ha_tokudb.so';
install plugin TokuDB soname 'ha_tokudb.so';

Please report it to Percona (whatever bug tracker they are using for TokuDB nowadays) and link the report to this one.

Comment by Aurélien LEQUOY [ 2018-02-21 ]

i go the same from tricky upgrade and / or compilation

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