[MDEV-28305] Innodb assertion - DICT_TF_HAS_DATA_DIR(table->flags) (was: Falha ao tentar iniciar serviço) Created: 2022-04-12  Updated: 2022-04-13  Resolved: 2022-04-13

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB
Affects Version/s: 10.6.5
Fix Version/s: N/A

Type: Bug Priority: Blocker
Reporter: Edson Pillareck Junior Assignee: Marko Mäkelä
Resolution: Duplicate Votes: 0
Labels: None
Environment:

Windows 10 Pro X64 21h1 19043.1586, I7-4770, 16GB ram, 2x SSD Adata 1TB Raid 0


Attachments: File LOG QUEDA 12.04.2022 1133 SERVERBANCO-220.err     File my.ini    
Issue Links:
Duplicate
duplicates MDEV-26551 InnoDB crash on multiple concurrent S... Closed

 Description   

Tive essa falha em nosso banco de dados em produção, porém não consegui encontrar uma possível causa para o problema, ao reiniciar o serviço o mesmo voltou a funcionar, porém, demorou mais de 15 minutos para iniciar e agora nosso banco de dados está com lentidão.

Google translate version:

There was a failure in our dice bank in production, but I couldn't find a possible cause for the problem, either restarted the service or it returned to work, so it took more than 15 minutes to start and now our dice bank is slow



 Comments   
Comment by Daniel Black [ 2022-04-13 ]

2022-04-12 11:33:17 0x69c  InnoDB: Assertion failure in file D:\winx64-packages\build\src\storage\innobase\dict\dict0load.cc line 2139
InnoDB: Failing assertion: DICT_TF_HAS_DATA_DIR(table->flags)
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 mariadbd 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.
220412 11:33:17 [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.6.5-MariaDB
key_buffer_size=1048576000
read_buffer_size=131072
max_used_connections=109
max_threads=65537
thread_count=102
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 143636872 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
 
Thread pointer: 0x1f2e26d7568
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...
server.dll!my_parameter_handler()[my_init.c:278]
ucrtbase.dll!raise()
ucrtbase.dll!abort()
server.dll!ut_dbg_assertion_failed()[ut0dbg.cc:60]
server.dll!dict_save_data_dir_path()[dict0load.cc:2139]
server.dll!dict_get_and_save_data_dir_path()[dict0load.cc:2179]
server.dll!ha_innobase::update_create_info()[ha_innodb.cc:11389]
server.dll!get_schema_tables_record()[sql_show.cc:5634]
server.dll!fill_schema_table_by_open()[sql_show.cc:4710]
server.dll!get_all_tables()[sql_show.cc:5320]
server.dll!get_schema_tables_result()[sql_show.cc:8842]
server.dll!JOIN::exec_inner()[sql_select.cc:4693]
server.dll!JOIN::exec()[sql_select.cc:4516]
server.dll!mysql_select()[sql_select.cc:4996]
server.dll!handle_select()[sql_select.cc:545]
server.dll!execute_sqlcom_select()[sql_parse.cc:6256]
server.dll!mysql_execute_command()[sql_parse.cc:3946]
server.dll!mysql_parse()[sql_parse.cc:8034]
server.dll!dispatch_command()[sql_parse.cc:1898]
server.dll!do_command()[sql_parse.cc:1404]
server.dll!threadpool_process_request()[threadpool_common.cc:403]
server.dll!tp_callback()[threadpool_common.cc:203]
KERNEL32.DLL!TermsrvSetKeySecurity()
ntdll.dll!RtlEqualUnicodeString()
ntdll.dll!TpReleaseCleanupGroupMembers()
KERNEL32.DLL!BaseThreadInitThunk()
ntdll.dll!RtlUserThreadStart()
 
 
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x1f2e1ed8290): SHOW TABLE STATUS FROM `6818`
Connection ID (thread ID): 787
Status: NOT_KILLED

This looks very much like a duplicate of MDEV-26551

Comment by Daniel Black [ 2022-04-13 ]

The crash recovery implementation has been improved in MDEV-14425 (10.8). It won't help you yet.

In the mean time it seems avoiding SHOW TABLE STATUS is the workaround until next release.

Comment by Daniel Black [ 2022-04-13 ]

Recommend watch marko's FOSDEM 2022 talk. Take note of innodb_log_file_size recommendation.

Also your settings max_allowed_packet, join_buffer_size, key_buffer_size settings look suspiciously high.

Thanks for the bug report.

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