Now I figured out the reason for MySQL Server 5.1.24 crash when used with InnoDB plugin 1.0. As I had a older my.cnf in the path and it had innodb_flush_method=fdatasync as the default flush method. But from 5.1.24 onwards, fdatasync is not supported as the flush method (not sure why we have such a change in the final stage of RC code, but …)
Even though I get an error in the mysqld.err log that InnoDB failed to register; but server starts and loads rest of InnoDB information schema plugins without the main InnoDB plugin.
1 2 3 4 5 |
InnoDB: Unrecognized <span class="kwrd">value</span> fdatasync <span class="kwrd">for</span> innodb_flush_method 080423 22:36:04 [ERROR] Plugin <span class="str">'InnoDB'</span> init <span class="kwrd">function</span> returned error. 080423 22:36:04 [ERROR] Plugin <span class="str">'InnoDB'</span> registration <span class="kwrd">as</span> a STORAGE ENGINE failed. |
As the server started with rest of the InnoDB plugins; upon querying any of them; the server simply crashes…
1 2 3 |
mysql> show plugins; |
1 2 3 |
+---------------------+--------+--------------------+---------+---------+ |
1 2 3 |
| Name | Status | Type | Library | License | |
1 2 3 |
+---------------------+--------+--------------------+---------+---------+ |
1 2 3 |
| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL | |
1 2 3 |
| partition | ACTIVE | STORAGE ENGINE | NULL | GPL | |
1 2 3 |
| ARCHIVE | ACTIVE | STORAGE ENGINE | NULL | GPL | |
1 2 3 |
| BLACKHOLE | ACTIVE | STORAGE ENGINE | NULL | GPL | |
1 2 3 |
| CSV | ACTIVE | STORAGE ENGINE | NULL | GPL | |
1 2 3 |
| FEDERATED | ACTIVE | STORAGE ENGINE | NULL | GPL | |
1 2 3 |
| MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL | |
1 2 3 |
| INNODB_TRX | ACTIVE | INFORMATION SCHEMA | NULL | GPL | |
1 2 3 |
| INNODB_LOCKS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | |
1 2 3 |
| INNODB_LOCK_WAITS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | |
1 2 3 |
| INNODB_CMP | ACTIVE | INFORMATION SCHEMA | NULL | GPL | |
1 2 3 |
| INNODB_CMP_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL | |
1 2 3 |
| INNODB_CMPMEM | ACTIVE | INFORMATION SCHEMA | NULL | GPL | |
1 2 3 |
| INNODB_CMPMEM_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL | |
1 2 3 |
| MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL | |
1 2 3 |
| MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL | |
1 2 3 |
+---------------------+--------+--------------------+---------+---------+ |
1 2 3 |
16 rows <span class="kwrd">in</span> set (0.00 sec) |
1 2 3 |
1 2 3 |
mysql> select * from Information_schema.Innodb_locks; |
1 2 3 |
ERROR 2013 (HY000): Lost connection to MySQL server during query |
You can crash in the same way if you have any invalid InnoDB variable in the config file. It looks like InnoDB needs to have dependency on the main plugin when it is loading the information schema plugins or at least it should have validation checks up on querying the information schema tables for the main plugin. I will file a bug report on this.
Good thing is I was able to get InnoDB plugin to work with MySQL 5.1.24 and started doing some benchmarks, and results seemed to be very positive. I will post the updated results later tomorrow.
Hi,
The InnoDB I_S plugins are useless without the InnoDB storage engine plugin. Trying to use them when the latter is not loaded has unpredictable results. Maybe we can make them refuse to start when the storage engine is not started…
This is reported in http://bugs.mysql.com/36310