Bug #40733 | When started as root 6.0.8 server crashes on startup | ||
---|---|---|---|
Submitted: | 14 Nov 2008 10:40 | Modified: | 10 Jul 2009 16:50 |
Reporter: | Alexey Stroganov | Email Updates: | |
Status: | Duplicate | Impact on me: | |
Category: | MySQL Server | Severity: | S1 (Critical) |
Version: | 6.0.8-release, 5.4 | OS: | Any |
Assigned to: | Assigned Account | CPU Architecture: | Any |
Tags: | regression |
[14 Nov 2008 10:40]
Alexey Stroganov
[14 Nov 2008 10:43]
Alexey Stroganov
Cut&paste typo in report above: Read mysql-6.0.8-alpha-linux-x86_64-glibc23 instead of mysql-6.0.8-alpha-pb97-linux-x86_64.
[16 Jun 2009 5:20]
Vladimir Shebordaev
I can't reproduce this bug in current 6.0.12-alpha built with gcc 4.3.2 (compile-pentium-max on P4). But the debug mysqld gets aborted in safe_mutex_destroy() called for uninitialized mutex in end_slave_start() in the same unireg_abort() path: # ./mysqld --version ./mysqld Ver 6.0.12-alpha-debug for pc-linux-gnu on i686 (Source distribution) # ./mysqld 090616 6:03:34 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root! 090616 6:03:34 [ERROR] Aborting safe_mutex: Trying to destroy unitialized mutex at sql_repl.cc, line 1027 090616 6:03:34 - mysqld got signal 6 ; [ skipped ] thd: 0x0 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 = (nil) thread_stack 0x30c00 ./mysqld(my_print_stacktrace+0x32) [0x894682c] ./mysqld(handle_segfault+0x2db) [0x8322241] [0x71a400] /lib/libc.so.6(abort+0x188) [0xa12e28] ./mysqld(safe_mutex_destroy+0xbe) [0x8920502] ./mysqld(end_slave_start()+0x22) [0x84d7384] ./mysqld [0x8323d4b] ./mysqld(unireg_abort+0x7d) [0x8323feb] ./mysqld [0x83266aa] ./mysqld(main+0x187) [0x8326902] /lib/libc.so.6(__libc_start_main+0xe5) [0x9fc6e5] ./mysqld [0x823bdb1] 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. Basically, these bugs are due to the server is aborted with unireg_abort() in check_user() before init_server_components() is called. I guess the bug described in the original report is caused by improper reference to certain uninitialized object perhaps due to minor gcc bug. For the sake of consistency it would be nice to introduce a flag to indicate whether it's safe to unwind initialization with clean_up() in unireg_abort(). One can safely call clean_up() in unireg_abort() just after start_handle_manager() is invoked at mysqld.cc:4703.
[10 Jul 2009 16:50]
Alfranio Tavares Correia Junior
Duplicate of BUG#43533.