From: Sergey Glukhov Date: March 13 2009 8:51am Subject: bzr commit into mysql-5.1-bugteam branch (Sergey.Glukhov:2835) Bug#42610 List-Archive: http://lists.mysql.com/commits/69103 X-Bug: 42610 Message-Id: <0KGF00FZUSLUSH90@fe-emea-10.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary_(ID_t+y/YyVLZjdcAcs4dPlqeQ)" --Boundary_(ID_t+y/YyVLZjdcAcs4dPlqeQ) 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-bugteam/ based on revid:azundris@stripped 2835 Sergey Glukhov 2009-03-13 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-13 08:51:25 +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-03-11 20:30:56 +0000 +++ b/sql/mysqld.cc 2009-03-13 08:51:25 +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; @@ -3886,6 +3891,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-13 08:51:25 +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_t+y/YyVLZjdcAcs4dPlqeQ) 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-bugteam/ # testament_sha1: f93d21bae4c76aa2cfcb8cb03a63a38820358d42 # timestamp: 2009-03-13 12:51:34 +0400 # source_branch: bzr+ssh://sgluhov@stripped/bzrroot\ # /server/mysql-5.1-bugteam/ # base_revision_id: azundris@stripped # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWWXGBMQABAJ/gFUYBAB59/// f6f/ur////pgCO+eTLIKHEzmNqw77HeztqpoCMJKENTIZJNlMn6p6n6ZJPTQ1G1PSNqZNpNHqPKP UPUPUepmoMqZNBPKmeKnptJqNAAAAGQBoAAAaHMJoyNDQyGEaGQ00aADEZMgGEAwCRIhBkBHqmj0 0nqGmQYNTQ0aaDINAZANA2qQTEm00xNCPKbSNDEAAAAAGgAAkkAIENExDQ00mE01PSmahkNADR6j TR6htRbrJF7g8jJy/AG5m5g5Wdb6x9dVUc8lLnOGtqoDYQzWLTZND7quueDzSngwSbu9myT4RQFJ uE4xp368HzupBPwudSUa0jzIBVBLDSv+fgfF5Im8+SO0PisUzMhtJu5mFLD+ousxZacc8sZpEm5h BqVEUSmpTdNWqRXeoKHS8jVOsRLquB0H4JnIHCukNBOriM0WjNmX0EYxwyX+ukoEZl7hzQa9/yB1 SKvDrC8mdcV12Dix/MgqMfvBgLgsSDXcvTq4csu+D+Ptl8syC7ZTWx+B3H1XavEBDgu03MjIhI42 lTMv8GnJn1XcMLGC8/I37Y+U+TznzH9uy8MZWxExZUbBg2X0SulwWckkpefoj+PSwYcyrr1ZcADo Xem9d5rIftDPOBw7/JPqeYiIsqmxPU7K+p1GxXGnerpBpuQPENpiIEaEdkOagaKKMayKiuN+u6Kb BNoiyW3OKCmMfEKRVJIJigWQcSNRAiwnCTlbcFJwGUk6bHsVqEyIjMoATeKERk1NhYeXmyU9OTmS fk5Z+pSGIrhhYLLBXMrvW9QJAy5QkIg0NPvv0KsREaUZdDUB6tsKFmSYYnZtNly0FukT8sA28EKZ fWLlhCbWjjpUbwREKK4pOcVV0JOcWi2jjqnFIpzLXTLeOfGZN4rkhWjKj+K6XljV1X72K48d6YY4 EMXBbF6cKloWdxcbz/qnnPQPyz0Dx1hxoUzM+pxVbVVdimo/Mhhoz0xRJlA95jMYKtp/hc+A2ltx IOWupLAc6hQy8VxDIvGOjWtwYLKNn2ve+83kxFZc8ie41LnMxSEdUH7K1YOCctzzIe1i0x5Cmlxt E2pcxxkQEmAmDrpUcosVStuCOM5AtBFkvgdI4mYs4SoCSIXDGhMiIANgohSnBItiUVDDEbZUZ6MV iGJJzbgvHBS6EDMwOW8LFYIaZ0aaSFzBwtGUWRYCxjmotNMLD4ghmy/ENReYkGEVQxnEpY012nQO ITLRvT2VgDonF+olGZjfkRITE4dUXHwe7QbCgw5nCJ6itfzduSkylV2EpKAaLikwx2UGSmQqt3A9 86o0y0vWGycjwqrXgDla4zTf2qtV3RmnRE01UpII7xgwN5/iHLlc9rmRsdAY0c8sKjawR3awzB7v wtpu7lKp0wYM/Lr3miBp0Lp2qCfY6vq8O+J9vP2se9eFpXLCXBXy8IaNoPyUgeVeQC8Ih2OD7I7w PxF8znfTNtAfZT55wAmmI9jTFibi6tCTzWyuLT5ieoIFvvtMIBfJVUcxZvvb9PBVD2H/jfZWwbUs FGhepS+8Dz+gO9x5Jy3FCgIYo9qKWieLcoKmh+KXnGByLlXCcpIwGAhGkB6/edpppC0tATTHsCML OczlsI0ZhbzgzWFYXesgoqtFlZiEdW162r3BNyJs6PUFnFz3+ZYSxdrNcRvziKNax0LJ6iEKajSo jiNI4oSN6SiUJGjDB8EB2+B5MLYeJgTMTmcQJimcAMdjjq+MSuGWjQykduK1zoNcDmQEyncfjHAX HxTuxHOU3DjgYmKsjI0q1msiMhEwoGvnOk3mJ7SYb50DajmjMxOAaSK46F0rR3LWI9sA7h6n7F7R 4cXfEnhvh3ZmpTEoqF0QGSuWhpaROIBT0BDyYwUidTHMAfMJEV10Dc7S8x8WEY+YiQoqPDgwKjsW spwTRTBSiNEim2ioOvEVS4p4KMlvDfLkI5HI7DiSXkceddg9eRskipvIkhXn9iBoDaudfgu3au1Y hsWlchU2nvkvumIcFG8l6TPHQA7rS2rpST+2AKQgt6CKG9d710PpUaCJYS/IGLfWKN2FAxBBBNFx JvMCv+NVqBJ3VY4whA9t226qFHTSZtd7IXAP2aOuJZ94OwFip5qIPHIYZDN+Q2i2c2Jp32ziVB82 02u8IxecGGQYPmsFvEYrd6BFGpRTyqbWf5zVBD++5ygoWXbeNB1IuIhsVjCRF1IdFCOjaE8wWOFC vIWdsTDCjBgt8g7+3NYbgQZTc5xpLR6BiJ1iR0rkqLJ6YDvX+OWBDpkI3qzvNd4juU7git20Ob3e XVn/yNNi1IhRiMowdkNmeUmkFoKceaEod7D0NHjT6tlDxucJlbgD0Ry6KwU3fsTyqOs9OpykoheD WVOIUNJh41TsIda7ivruhIRqBIv1J5OOAcILiQMC7noujcmFTMcOFY+2y8XM6ipJaTV7VZZAvW/S vRCoudPzxDr8vECsgoLBTF6I+lwbA4S0vm6PohhGJ0nKxivFksF+1aBDpEZIwq6Gcl24OJDuSYXu YifWuzZQRs+HQtrJ8ErgTITSsBl8EyM09XCJ7FRONGKbRILrC4naqlWLmBlcOOLBcPKPeNBPHuW1 HhmeaGXKmHU8MgqIYLIoFGi5znOd4LgJye9QgIsjENwO8ygmLe4E/Ss9RVMUy15yNeb1RT+ArWDa DKpC2xy0itbqV4ii8P0LLQbyxYJ20HufZVmHUs9QqrvTk64YvZGFU8cDGpaFa4+lVPrt9rxBtZgi up4LszR5kaQ3gLrcpceBUDbCYTENAo0pCMhwP3EKqVSDSsV645o3y8hRkxKUkREhSoUQ+N0UIajS YhNwEbqdHGWdPHE4klbGsoirzsSnGUkz1QjfHmyQslBuj/4u5IpwoSDLjAmI --Boundary_(ID_t+y/YyVLZjdcAcs4dPlqeQ)--