From: Sergey Glukhov Date: March 12 2009 6:01pm Subject: bzr commit into mysql-5.1-bugteam branch (Sergey.Glukhov:2832) Bug#42610 List-Archive: http://lists.mysql.com/commits/69070 X-Bug: 42610 Message-Id: <0KGE00EBYNEIGRF0@fe-emea-09.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary_(ID_xcwSs2xRQEXCRp7kIBO3qw)" --Boundary_(ID_xcwSs2xRQEXCRp7kIBO3qw) MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7BIT Content-disposition: inline #At file:///home/gluh/MySQL/mysql-5.1-bug-42610.1/ based on revid:timothy.smith@stripped 2832 Sergey Glukhov 2009-03-12 Bug#42610 Dynamic plugin broken in 5.1.31 --added ability to obtain plugin variables from my.cnf on INSTALL PLUGIN stage --option 'ignore-builtin-innodb' disables all InnoDB builtin plugins (including I_S plugins) @ sql/mysql_priv.h --added ability to obtain plugin variables from my.cnf on INSTALL PLUGIN stage @ sql/mysqld.cc --added ability to obtain plugin variables from my.cnf on INSTALL PLUGIN stage @ sql/sql_plugin.cc --added ability to obtain plugin variables from my.cnf on INSTALL PLUGIN stage --option 'ignore-builtin-innodb' disables all InnoDB builtin plugins (including I_S plugins) modified: sql/mysql_priv.h sql/mysqld.cc sql/sql_plugin.cc === modified file 'sql/mysql_priv.h' --- a/sql/mysql_priv.h 2009-02-24 11:29:49 +0000 +++ b/sql/mysql_priv.h 2009-03-12 18:01:24 +0000 @@ -2047,6 +2047,9 @@ extern SHOW_COMP_OPTION have_geometry, h extern SHOW_COMP_OPTION have_crypt; extern SHOW_COMP_OPTION have_compress; +extern int orig_argc; +extern char **orig_argv; +extern const char *load_default_groups[]; #ifndef __WIN__ extern pthread_t signal_thread; === modified file 'sql/mysqld.cc' --- a/sql/mysqld.cc 2009-02-25 08:49:02 +0000 +++ b/sql/mysqld.cc 2009-03-12 18:01:24 +0000 @@ -648,6 +648,9 @@ static int defaults_argc; static char **defaults_argv; static char *opt_bin_logname; +int orig_argc; +char **orig_argv; + static my_socket unix_sock,ip_sock; struct rand_struct sql_rand; ///< used by sql_class.cc:THD::THD() @@ -2923,7 +2926,7 @@ pthread_handler_t handle_shutdown(void * #endif #if !defined(EMBEDDED_LIBRARY) -static const char *load_default_groups[]= { +const char *load_default_groups[]= { #ifdef WITH_NDBCLUSTER_STORAGE_ENGINE "mysql_cluster", #endif @@ -3221,6 +3224,8 @@ static int init_common_variables(const c SQLCOM_END + 8); #endif + orig_argc=argc; + orig_argv=argv; load_defaults(conf_file_name, groups, &argc, &argv); defaults_argv=argv; defaults_argc=argc; @@ -3883,6 +3888,7 @@ server."); if ((ho_error= handle_options(&defaults_argc, &tmp_argv, no_opts, mysqld_get_one_option))) unireg_abort(ho_error); + my_getopt_skip_unknown= TRUE; if (defaults_argc) { === modified file 'sql/sql_plugin.cc' --- a/sql/sql_plugin.cc 2009-02-09 15:03:52 +0000 +++ b/sql/sql_plugin.cc 2009-03-12 18:01:24 +0000 @@ -1139,8 +1139,9 @@ int plugin_init(int *argc, char **argv, for (plugin= *builtins; plugin->info; plugin++) { if (opt_ignore_builtin_innodb && - !my_strcasecmp(&my_charset_latin1, plugin->name, "InnoDB")) - continue; + !my_strnncoll(&my_charset_latin1, (const uchar*) plugin->name, + 6, (const uchar*) "InnoDB", 6)) + continue; /* by default, ndbcluster and federated are disabled */ def_enabled= my_strcasecmp(&my_charset_latin1, plugin->name, "NDBCLUSTER") != 0 && @@ -1633,8 +1634,8 @@ bool mysql_install_plugin(THD *thd, cons { TABLE_LIST tables; TABLE *table; - int error, argc; - char *argv[2]; + int error, argc=orig_argc; + char **argv=orig_argv; struct st_plugin_int *tmp; DBUG_ENTER("mysql_install_plugin"); @@ -1650,21 +1651,31 @@ bool mysql_install_plugin(THD *thd, cons pthread_mutex_lock(&LOCK_plugin); rw_wrlock(&LOCK_system_variables_hash); - /* handle_options() assumes arg0 (program name) always exists */ - argv[0]= const_cast(""); // without a cast gcc emits a warning - argv[1]= 0; - argc= 1; + + load_defaults(MYSQL_CONFIG_NAME, load_default_groups, &argc, &argv); error= plugin_add(thd->mem_root, name, dl, &argc, argv, REPORT_TO_USER); + if (argv) + free_defaults(argv); rw_unlock(&LOCK_system_variables_hash); if (error || !(tmp= plugin_find_internal(name, MYSQL_ANY_PLUGIN))) goto err; - if (plugin_initialize(tmp)) + if (tmp->state == PLUGIN_IS_DISABLED) { - my_error(ER_CANT_INITIALIZE_UDF, MYF(0), name->str, - "Plugin initialization function failed."); - goto deinit; + push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_CANT_INITIALIZE_UDF, ER(ER_CANT_INITIALIZE_UDF), + name->str, "Plugin is disabled"); + } + else + { + DBUG_ASSERT(tmp->state == PLUGIN_IS_UNINITIALIZED); + if (plugin_initialize(tmp)) + { + my_error(ER_CANT_INITIALIZE_UDF, MYF(0), name->str, + "Plugin initialization function failed."); + goto deinit; + } } /* --Boundary_(ID_xcwSs2xRQEXCRp7kIBO3qw) MIME-version: 1.0 Content-type: text/bzr-bundle; name="bzr/sergey.glukhov@stripped"; charset=us-ascii Content-transfer-encoding: 7BIT Content-disposition: inline; filename="bzr/sergey.glukhov@stripped" # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: sergey.glukhov@stripped # target_branch: file:///home/gluh/MySQL/mysql-5.1-bug-42610.1/ # testament_sha1: 956fd463e5928420b59f45ebc462fc64612a496b # timestamp: 2009-03-12 22:01:32 +0400 # base_revision_id: timothy.smith@stripped\ # ugla6xjf9vfxe1h0 # # Begin bundle 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 --Boundary_(ID_xcwSs2xRQEXCRp7kIBO3qw)--