Hi, Sergey! On Jun 17, Sergey Petrunya wrote:
Hi Sergei,
Could you please review the below:
------------------------------------------------------------ revno: 2994 committer: Sergey Petrunya <psergey@askmonty.org> timestamp: Fri 2011-06-17 01:05:20 +0400 message: BUG#790513: MariaDB crashes on startup
please use lp:790513 abbreviation for bugs. see 'bzr help bugs' for details.
- Let ha_resolve_by_name() print error in case it could locate the needed plugin but the plugin hasn't yet been initialized. One can hit this problem by having mysql.plugin of type=innodb.
Okay, I see the problem. But why couldn't we just initialize *all* built-in plugins earlier, before accessing mysql.plugin table ?
=== modified file 'sql/handler.cc' --- a/sql/handler.cc 2011-05-03 16:10:10 +0000 +++ b/sql/handler.cc 2011-06-16 21:05:20 +0000 @@ -135,6 +135,12 @@ if ((plugin= my_plugin_lock_by_name(thd, name, MYSQL_STORAGE_ENGINE_PLUGIN))) { handlerton *hton= plugin_data(plugin, handlerton *); + if (!hton) + { + sql_print_error("Attempt to use a built-in plugin %*s before it " + "has been initialized", name->length, name->str); + return NULL; + } if (!(hton->flags & HTON_NOT_USER_SELECTABLE)) return plugin;
Regards, Sergei