Bug #40853 Crash at start up with wrong datadir
Submitted: 19 Nov 2008 13:44 Modified: 30 Jul 2009 7:39
Reporter: Miguel Solorzano Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: General Severity:S3 (Non-critical)
Version:6.0.9, 5.4 OS:Windows (XP 32-bit)
Assigned to: Alexander Nozdrin CPU Architecture:Any
Tags: crash, regression, startup

[19 Nov 2008 13:44] Miguel Solorzano
Description:
When starting the server with a wrong datadir, the server crashes:

c:\dbs>c:\dbs\6.0\bin\mysqld --defaults-file=c:\dbs\6.0\my.ini --standalone --console
081119 11:34:47 [Warning] Can't create test file c:\dbs\6.0\data\skybr.lower-test
081119 11:34:47 [Warning] Can't create test file c:\dbs\6.0\data\skybr.lower-test
c:\dbs\6.0\bin\mysqld: Can't change dir to 'c:\dbs\6.0\data\' (Errcode: 2)
081119 11:34:47 [ERROR] Aborting

081119 11:34:48 - mysqld got exception 0xc0000005 ;
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.
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.

key_buffer_size=0
read_buffer_size=131072
max_used_connections=0
max_threads=151
thread_count=0
connection_count=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 329561 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

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...
00795291    mysqld.exe!Delegate::~Delegate()[rpl_handler.h:129]
00795266    mysqld.exe!Trans_delegate::~Trans_delegate()
00795126    mysqld.exe!Trans_delegate::`scalar deleting destructor'()
007931C0    mysqld.exe!delegates_destroy()[rpl_handler.cc:119]
0056F484    mysqld.exe!clean_up()[mysqld.cc:1357]
0056F28F    mysqld.exe!unireg_abort()[mysqld.cc:1286]
00570D44    mysqld.exe!win_main()[mysqld.cc:4550]
00573AF8    mysqld.exe!mysql_service()[mysqld.cc:4743]
00573E64    mysqld.exe!main()[mysqld.cc:4916]
00B9E133    mysqld.exe!mainCRTStartup()[crt0.c:259]
7C817067    kernel32.dll!RegisterWaitForInputIdle()
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.

The 5.0/5.1 just prints the error messages.

How to repeat:
Start the server with wrong datadir in my.ini file

Suggested fix:
-
[19 Nov 2008 13:51] MySQL Verification Team
Duplicate of bug: http://bugs.mysql.com/bug.php?id=37594.
[29 Jan 2009 22:01] Vladislav Vaintroub
setting to open again because it crashes somewhere else, symptoms are different from the bug that is supposed to be "parent".

Here, null pointer is dereferenced in delegates_destroy() in rpl_handler.cc
[29 Jan 2009 23:27] MySQL Verification Team
c:\dbs>6.0\bin\mysqld --standalone --console --datadir=c:\noexists
090129 21:26:03 [Warning] Can't create test file c:\noexists\hegel.lower-test
090129 21:26:03 [Warning] Can't create test file c:\noexists\hegel.lower-test
SSL error: Unable to get certificate from 'C:/dbs/5.0/server-cert.pem'
090129 21:26:03 [Warning] Failed to setup SSL
6.0\bin\mysqld: Can't change dir to 'c:\noexists\' (Errcode: 2)
090129 21:26:03 [ERROR] Aborting

090129 21:26:03 - mysqld got exception 0xc0000005 ;
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.
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.

key_buffer_size=0
read_buffer_size=131072
max_used_connections=0
max_threads=151
thread_count=0
connection_count=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 329991 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

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...
000000014022BB41    mysqld.exe!delegates_destroy()[rpl_handler.cc:118]
00000001400D42F8    mysqld.exe!clean_up()[mysqld.cc:1368]
00000001400D89B5    mysqld.exe!win_main()[mysqld.cc:4609]
00000001400D8DE2    mysqld.exe!mysql_service()[mysqld.cc:4799]
00000001400D90F8    mysqld.exe!main()[mysqld.cc:4972]
00000001405629C5    mysqld.exe!__tmainCRTStartup()[crt0.c:327]
000000007771495D    kernel32.dll!BaseThreadInitThunk()
0000000077918791    ntdll.dll!RtlUserThreadStart()
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.

c:\dbs>
[10 Mar 2009 7:47] Sveta Smirnova
Bug #43506 was marked as duplicate of this one.
[30 Jul 2009 7:39] Alexander Nozdrin
I can not repeat this bug:
-----------------------------------------------
C:\MySQL\mysql-5.4.4-alpha\sql\Debug>mysqld.exe --standalone --console --datadir=c:\noexists
090730 11:36:44 [Warning] The path specified for the variable backupdir is not a directory or cannot be written: 'c:\noexists'

090730 11:36:44 [Warning] Can't create test file c:\noexists\vmxp.lower-test
090730 11:36:44 [Warning] Can't create test file c:\noexists\vmxp.lower-test
C:\MySQL\mysql-5.4.4-alpha\sql\Debug\mysqld.exe: Can't change dir to 'c:\noexists\' (Errcode: 2)
090730 11:36:44 [ERROR] Aborting

090730 11:36:44 [Note] C:\MySQL\mysql-5.4.4-alpha\sql\Debug\mysqld.exe: Shutdown complete
-----------------------------------------------