Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to solve the InnoDB: Failing assertion: format! = 0 error in MySQL

2025-03-04 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Database >

Share

Shulou(Shulou.com)05/31 Report--

InnoDB: Failure assertion: format != 0 error "related knowledge, in the actual case operation process, many people will encounter such difficulties, then let Xiaobian lead you to learn how to deal with these situations! I hope you can read carefully and learn something!

MySQL version 5.7.19, OS is MAC OS X When deleting tablespaces, the following error occurs

[root@localhost][(none)]> drop tablespace ts1;ERROR 2013 (HY000): Lost connection to MySQL server during query

2. Check the error.log log, it looks a bit like a BUG

2018-04-09 16:00:21 0x700007f04000 InnoDB: Assertion failure in thread 123145435496448 in file ha_innodb.cc line 20927 InnoDB: Failing assertion: format != 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, evenInnoDB: immediately after the mysqld startup, there may beInnoDB: corruption in the InnoDB tablespace. Please refer toInnoDB: http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html InnoDB: about forcing recovery. 08:00:21 UTC - mysqld got signal 6 ;This could be because you hit a bug. It is also possible that this binaryor one of the libraries it was linked against is corrupt, improperly built,or misconfigured. This error can also be caused by malfunctioning hardware.Attempting to collect some information that could help diagnose the problem.As this is a crash and something is definitely wrong, the informationcollection process might fail.key_buffer_size=8388608 read_buffer_size=16777216 max_used_connections=1 max_threads=512 thread_count=2 connection_count=1 It is possible that mysqld could use up to key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 25180932 K bytes of memoryHope that's ok; if not, decrease some variables in the equation.Thread pointer: 0x7f86b59eda00Attempting backtrace. You can use the following information to find outwhere mysqld died. If you see no messages after this, something wentterribly wrong... stack_bottom = 700007f03e90 thread_stack 0x400000 mysqld 0x000000010385b12a my_print_stacktrace + 581 mysqld 0x00000001037b7e30 handle_fatal_signal + 6882 libsystem_platform.dylib 0x00007fff7ab81f5a _sigtramp + 263 mysqld 0x0000000104175c4b _ZZN10binary_log4Uuid9to_stringEPKhPcE11byte_to_hex + 788114 libsystem_c.dylib 0x00007fff7a9ac312 abort + 1275 mysqld 0x0000000103ab1471 _Z23ut_dbg_assertion_failedPKcS0_m + 1616 mysqld 0x0000000103970147 _Z11ib_senderrfP3THD14ib_log_level_tjz + 3597 mysqld 0x0000000103982b27 _Z7ib_errfP3THD14ib_log_level_tjPKcz + 1998 mysqld 0x0000000103984f9c _ZL25innobase_alter_tablespaceP10handlertonP3THDP19st_alter_tablespace + 12609 mysqld 0x00000001037353e4 _Z22mysql_alter_tablespaceP3THDP19st_alter_tablespace + 22810 mysqld 0x00000001036c6920 _Z21mysql_execute_commandP3THDb + 1281611 mysqld 0x00000001036c2d28 _Z11mysql_parseP3THDP12Parser_state + 87212 mysqld 0x00000001036c1b98 _Z16dispatch_commandP3THDPK8COM_DATA19enum_server_command + 472813 mysqld 0x00000001036c2789 _Z10do_commandP3THD + 50514 mysqld 0x000000010379ba44 handle_connection + 43615 mysqld 0x0000000103b11756 pfs_spawn_thread + 31016 libsystem_pthread.dylib 0x00007fff7ab8b6c1 _pthread_body + 34017 libsystem_pthread.dylib 0x00007fff7ab8b56d _pthread_body + 018 libsystem_pthread.dylib 0x00007fff7ab8ac5d thread_start + 13Trying to get some variables.Some pointers may be invalid and cause the dump to abort.Query (7f86b589dc30): drop tablespace ts1Connection ID (thread ID): 4Status: NOT_KILLEDThe manual page at http://dev.mysql.com/doc/mysql/en/crashing.html containsinformation that should help you find out what is causing the crash.

3. View line 20927 of the ha_innodb.cc source code

/** ****************************************************************//** Use this when the args are passed to the format string fromerrmsg-utf8.txt directly as is.Push a warning message to the client, it is a wrapper around:void push_warning_printf( THD *thd, Sql_condition::enum_condition_level level, uint code, const char *format, ...);*/ void ib_senderrf( /*========*/ THD* thd, /*!

< in/out: session */ ib_log_level_t level, /*!< in: warning level */ ib_uint32_t code, /*!< MySQL error code */ ...) /*!< Args */ { va_list args; char* str = NULL; const char* format = innobase_get_err_msg(code); /* If the caller wants to push a message to the client then the caller must pass a valid session handle. */ ut_a(thd != 0); /* The error code must exist in the errmsg-utf8.txt file. */ ut_a(format != 0); va_start(args, code);#ifdef _WIN32 int size = _vscprintf(format, args) + 1; if (size >

0) { str = static_cast(malloc(size)); } if (str == NULL) { va_end(args); return; /* Watch for Out-Of-Memory */ } str[size - 1] = 0x0; vsnprintf(str, size, format, args);#elif HAVE_VASPRINTF int ret; ret = vasprintf(&str, format, args); if (ret < 0) { va_end(args); return; /* Watch for Out-Of-Memory */ }#else /* Use a fixed length string. */ str = static_cast(malloc(BUFSIZ)); if (str == NULL) { va_end(args); return; /* Watch for Out-Of-Memory */ } my_vsnprintf(str, BUFSIZ, format, args);#endif /* _WIN32 */ Sql_condition::enum_severity_level l; l = Sql_condition::SL_NOTE; switch (level) { case IB_LOG_LEVEL_INFO: break; case IB_LOG_LEVEL_WARN: l = Sql_condition::SL_WARNING; break; case IB_LOG_LEVEL_ERROR: /* We can't use push_warning_printf(), it is a hard error. */ my_printf_error(code, "%s", MYF(0), str); break; case IB_LOG_LEVEL_FATAL: l = Sql_condition::SEVERITY_END; break; } if (level != IB_LOG_LEVEL_ERROR) { push_warning_printf(thd, l, code, "InnoDB: %s", str); } va_end(args); free(str); if (level == IB_LOG_LEVEL_FATAL) { ut_error; }}"How to solve MySQL InnoDB: Failure assertion: format != 0 error "content is introduced here, thank you for reading. If you want to know more about industry-related knowledge, you can pay attention to the website. Xiaobian will output more high-quality practical articles for everyone!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Database

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report