<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Add an option to Fail on Innodb Initialize failure, Please ?</title>
	<atom:link href="http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/</link>
	<description>Everything about MySQL Performance</description>
	<pubDate>Tue, 14 Oct 2008 06:33:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: MySQL Error Message Nonsenses &#124; MySQL Performance Blog</title>
		<link>http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/#comment-253479</link>
		<dc:creator>MySQL Error Message Nonsenses &#124; MySQL Performance Blog</dc:creator>
		<pubDate>Mon, 17 Mar 2008 00:54:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/#comment-253479</guid>
		<description>[...] information if file table.frm is perhaps my favorite one. How do you expect to decode from this message this means storage engine in question is unavailable [...]</description>
		<content:encoded><![CDATA[<p>[...] information if file table.frm is perhaps my favorite one. How do you expect to decode from this message this means storage engine in question is unavailable [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: peter</title>
		<link>http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/#comment-178541</link>
		<dc:creator>peter</dc:creator>
		<pubDate>Thu, 18 Oct 2007 08:12:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/#comment-178541</guid>
		<description>Peter,

This is the good question.   Actually a while ago MySQL  would just start listening on the socket but connection will not succeed until recovery is completed. Right now it will not even start accepting connections until storage engines are initialized which is better. 

Accepting them but refusing queries to say Innodb tables with "Recovery In Progress"  or staling them on table lock could be an option but for most of the applications it would complicate things you have to think about and monitor - right now you have either MySQL is down or it is up and fully operational which is easy to check.

In your case I guess you need to check MySQL Error logs as well to see if you need to reboot the box.  This requires some hacking for remote boxes but should not be that bad.</description>
		<content:encoded><![CDATA[<p>Peter,</p>
<p>This is the good question.   Actually a while ago MySQL  would just start listening on the socket but connection will not succeed until recovery is completed. Right now it will not even start accepting connections until storage engines are initialized which is better. </p>
<p>Accepting them but refusing queries to say Innodb tables with &#8220;Recovery In Progress&#8221;  or staling them on table lock could be an option but for most of the applications it would complicate things you have to think about and monitor - right now you have either MySQL is down or it is up and fully operational which is easy to check.</p>
<p>In your case I guess you need to check MySQL Error logs as well to see if you need to reboot the box.  This requires some hacking for remote boxes but should not be that bad.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Bach</title>
		<link>http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/#comment-178333</link>
		<dc:creator>Peter Bach</dc:creator>
		<pubDate>Wed, 17 Oct 2007 21:54:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/#comment-178333</guid>
		<description>One other problem we have had is that as a MySQL client, you cannot tell when the database is going though recovery when starting up, other than reading the log file.

Your connection will fail, but you have no idea why. We have an embedded appliance, that tries to connect serveral times with a rudimentary backoff algorithm. If we can't connect, we just shutdown the server, or in the extreme case reboot the box.

So we ran into a problem when scale testing that the recovery was taking quite a bit of time, as expected, but the box would get rebooted underneath it. So recovery would fail, and you go through this again the next time you start up the system / database.

So what is the proper way to do this without user intervetion? Is there a way I can see the recovery is going on, maybe with a different error code, so I should at least know to retry, and the database is not really in a hung state.</description>
		<content:encoded><![CDATA[<p>One other problem we have had is that as a MySQL client, you cannot tell when the database is going though recovery when starting up, other than reading the log file.</p>
<p>Your connection will fail, but you have no idea why. We have an embedded appliance, that tries to connect serveral times with a rudimentary backoff algorithm. If we can&#8217;t connect, we just shutdown the server, or in the extreme case reboot the box.</p>
<p>So we ran into a problem when scale testing that the recovery was taking quite a bit of time, as expected, but the box would get rebooted underneath it. So recovery would fail, and you go through this again the next time you start up the system / database.</p>
<p>So what is the proper way to do this without user intervetion? Is there a way I can see the recovery is going on, maybe with a different error code, so I should at least know to retry, and the database is not really in a hung state.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Links for Mon 13 Dec 1999 through Sat 13 Oct 2007 &#124; Joseph Scott's Blog</title>
		<link>http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/#comment-177267</link>
		<dc:creator>Links for Mon 13 Dec 1999 through Sat 13 Oct 2007 &#124; Joseph Scott's Blog</dc:creator>
		<pubDate>Sun, 14 Oct 2007 00:26:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/#comment-177267</guid>
		<description>[...] Add an option to Fail on Innodb Initialize failure, Please ? &#124; MySQL Performance Blog - So if a storage engine in MySQL fails to load correctly there isn&#8217;t even so much as a log entry about it? Yuck!  Tags: mysql error [...]</description>
		<content:encoded><![CDATA[<p>[...] Add an option to Fail on Innodb Initialize failure, Please ? | MySQL Performance Blog - So if a storage engine in MySQL fails to load correctly there isn&#8217;t even so much as a log entry about it? Yuck!  Tags: mysql error [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: peter</title>
		<link>http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/#comment-176978</link>
		<dc:creator>peter</dc:creator>
		<pubDate>Sat, 13 Oct 2007 08:15:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/#comment-176978</guid>
		<description>Thanks Mark,

Indeed changing innodb_log_file_size is most common  case of this problem,  or related issues such as restoring from backup when log file size was different etc.</description>
		<content:encoded><![CDATA[<p>Thanks Mark,</p>
<p>Indeed changing innodb_log_file_size is most common  case of this problem,  or related issues such as restoring from backup when log file size was different etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Callaghan</title>
		<link>http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/#comment-176913</link>
		<dc:creator>Mark Callaghan</dc:creator>
		<pubDate>Sat, 13 Oct 2007 04:17:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/#comment-176913</guid>
		<description>I know too many people (including myself) who have wasted too much time on this issue. An easy way for this to happen is to change innodb_log_file_size in /etc/my.cnf so that it doesn't match the real size. I filed a feature request for this just now: http://bugs.mysql.com/bug.php?id=31578</description>
		<content:encoded><![CDATA[<p>I know too many people (including myself) who have wasted too much time on this issue. An easy way for this to happen is to change innodb_log_file_size in /etc/my.cnf so that it doesn&#8217;t match the real size. I filed a feature request for this just now: <a href="http://bugs.mysql.com/bug.php?id=31578" rel="nofollow">http://bugs.mysql.com/bug.php?id=31578</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: peter</title>
		<link>http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/#comment-176745</link>
		<dc:creator>peter</dc:creator>
		<pubDate>Fri, 12 Oct 2007 10:35:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/#comment-176745</guid>
		<description>Pawel,

I think this is a bit artificial case.  If Innodb crashes and it restarts it normally would self recover anyway. If it is bad database corruption so recovery does not work Innodb will in most cases assert and crash, ie due to page read failed. 

Innodb fails to initialized and is disabled typically in case of configuration changes permission problems etc. 

Now even imagine if you have Innodb as a master - for most people using basic monitoring people will not detect master is down if it is just Innodb which failed to initialize.    And if you're good with things and use custom monitoring and fall back scripts you can handle it by starting system with --skip-innodb  to perform log shipping unless you use some other way for it.</description>
		<content:encoded><![CDATA[<p>Pawel,</p>
<p>I think this is a bit artificial case.  If Innodb crashes and it restarts it normally would self recover anyway. If it is bad database corruption so recovery does not work Innodb will in most cases assert and crash, ie due to page read failed. </p>
<p>Innodb fails to initialized and is disabled typically in case of configuration changes permission problems etc. </p>
<p>Now even imagine if you have Innodb as a master - for most people using basic monitoring people will not detect master is down if it is just Innodb which failed to initialize.    And if you&#8217;re good with things and use custom monitoring and fall back scripts you can handle it by starting system with &#8211;skip-innodb  to perform log shipping unless you use some other way for it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pawel</title>
		<link>http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/#comment-176738</link>
		<dc:creator>Pawel</dc:creator>
		<pubDate>Fri, 12 Oct 2007 08:58:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/2007/10/11/add-an-option-to-fail-on-innodb-initialize-failure-please/#comment-176738</guid>
		<description>&#62; Honestly do not know any case when this behavior change helps...
It may help when server acts as master and innodb crashes.
In this case binlonlogs will be sent to slaves.
However, this can be achived in other way.</description>
		<content:encoded><![CDATA[<p>&gt; Honestly do not know any case when this behavior change helps&#8230;<br />
It may help when server acts as master and innodb crashes.<br />
In this case binlonlogs will be sent to slaves.<br />
However, this can be achived in other way.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
