[community-mysql] Fix misleading error message when uninstalling built-in plugins Related: #966645

Honza Horak hhorak at fedoraproject.org
Tue Jul 9 08:12:48 UTC 2013


commit e8e53607777b2543e8c77e161343ff5f0c501502
Author: Honza Horák <hhorak at redhat.com>
Date:   Mon Jul 1 16:31:53 2013 +0200

    Fix misleading error message when uninstalling built-in plugins
    Related: #966645

 community-mysql-pluginerrmsg.patch |   74 ++++++++++++++++++++++++++++++++++++
 community-mysql.spec               |    8 +++-
 2 files changed, 81 insertions(+), 1 deletions(-)
---
diff --git a/community-mysql-pluginerrmsg.patch b/community-mysql-pluginerrmsg.patch
new file mode 100644
index 0000000..dc000d0
--- /dev/null
+++ b/community-mysql-pluginerrmsg.patch
@@ -0,0 +1,74 @@
+In MySQL 5.5, the InnoDB Plugin is the default version and it's compiled in.
+In this case, the plugin cannot be uninstalled and we get error when trying
+to do so:
+
+mysql> uninstall plugin innodb;
+ERROR 1305 (42000): PLUGIN innodb does not exist
+
+But the error message is misleading. The plugin does exist, it just cannot
+be installed because it's not dynamically loaded.
+
+MySQL bug report: http://bugs.mysql.com/bug.php?id=51771
+MariaDB bug report: https://mariadb.atlassian.net/browse/MDEV-4573
+MariaDB fix: http://bazaar.launchpad.net/~maria-captains/maria/5.5/revision/3802
+
+diff -up mysql-5.5.32/include/mysql.h.pluginerrmsg mysql-5.5.32/include/mysql.h
+--- mysql-5.5.32/include/mysql.h.pluginerrmsg	2013-05-16 17:47:15.000000000 +0200
++++ mysql-5.5.32/include/mysql.h	2013-07-01 16:07:29.175690210 +0200
+@@ -134,6 +134,7 @@ typedef unsigned long long my_ulonglong;
+ 
+ /* backward compatibility define - to be removed eventually */
+ #define ER_WARN_DATA_TRUNCATED WARN_DATA_TRUNCATED
++#define WARN_PLUGIN_DELETE_BUILTIN ER_PLUGIN_DELETE_BUILTIN
+ 
+ typedef struct st_mysql_rows {
+   struct st_mysql_rows *next;		/* list of rows */
+diff -up mysql-5.5.32/mysql-test/r/plugin.result.pluginerrmsg mysql-5.5.32/mysql-test/r/plugin.result
+--- mysql-5.5.32/mysql-test/r/plugin.result.pluginerrmsg	2013-05-16 17:47:14.000000000 +0200
++++ mysql-5.5.32/mysql-test/r/plugin.result	2013-07-01 16:07:29.176690210 +0200
+@@ -63,3 +63,5 @@ set session sql_mode=@old_sql_mode;
+ set session old=bla;
+ ERROR HY000: Variable 'old' is a read only variable
+ UNINSTALL PLUGIN example;
++UNINSTALL PLUGIN MyISAM;
++ERROR HY000: Built-in plugins cannot be deleted
+diff -up mysql-5.5.32/mysql-test/t/plugin.test.pluginerrmsg mysql-5.5.32/mysql-test/t/plugin.test
+--- mysql-5.5.32/mysql-test/t/plugin.test.pluginerrmsg	2013-05-16 17:47:14.000000000 +0200
++++ mysql-5.5.32/mysql-test/t/plugin.test	2013-07-01 16:07:29.199690210 +0200
+@@ -85,3 +85,10 @@ set session sql_mode=@old_sql_mode;
+ set session old=bla;
+ 
+ UNINSTALL PLUGIN example;
++
++#
++# MDEV-4573 UNINSTALL PLUGIN misleading error message for non-dynamic plugins
++#
++--error ER_PLUGIN_DELETE_BUILTIN
++UNINSTALL PLUGIN MyISAM;
++
+diff -up mysql-5.5.32/sql/share/errmsg-utf8.txt.pluginerrmsg mysql-5.5.32/sql/share/errmsg-utf8.txt
+--- mysql-5.5.32/sql/share/errmsg-utf8.txt.pluginerrmsg	2013-05-16 17:47:15.000000000 +0200
++++ mysql-5.5.32/sql/share/errmsg-utf8.txt	2013-07-01 16:07:29.203690210 +0200
+@@ -6161,7 +6161,7 @@ WARN_NO_MASTER_INFO
+ WARN_OPTION_IGNORED
+   eng "<%-.64s> option ignored"
+   ger "Option <%-.64s> ignoriert"
+-WARN_PLUGIN_DELETE_BUILTIN
++ER_PLUGIN_DELETE_BUILTIN
+   eng "Built-in plugins cannot be deleted"
+   ger "Eingebaute Plugins können nicht gelöscht werden"
+ WARN_PLUGIN_BUSY
+diff -up mysql-5.5.32/sql/sql_plugin.cc.pluginerrmsg mysql-5.5.32/sql/sql_plugin.cc
+--- mysql-5.5.32/sql/sql_plugin.cc.pluginerrmsg	2013-07-01 16:07:29.205690210 +0200
++++ mysql-5.5.32/sql/sql_plugin.cc	2013-07-01 16:07:54.721689764 +0200
+@@ -1909,9 +1909,7 @@ bool mysql_uninstall_plugin(THD *thd, co
+   }
+   if (!plugin->plugin_dl)
+   {
+-    push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
+-                 WARN_PLUGIN_DELETE_BUILTIN, ER(WARN_PLUGIN_DELETE_BUILTIN));
+-    my_error(ER_SP_DOES_NOT_EXIST, MYF(0), "PLUGIN", name->str);
++    my_error(ER_PLUGIN_DELETE_BUILTIN, MYF(0));
+     goto err;
+   }
+   if (plugin->load_option == PLUGIN_FORCE_PLUS_PERMANENT)
diff --git a/community-mysql.spec b/community-mysql.spec
index 374c542..000ed0a 100644
--- a/community-mysql.spec
+++ b/community-mysql.spec
@@ -1,6 +1,6 @@
 Name: community-mysql
 Version: 5.5.32
-Release: 4%{?dist}
+Release: 5%{?dist}
 
 Summary: MySQL client programs and shared libraries
 Group: Applications/Databases
@@ -65,6 +65,7 @@ Patch26: community-mysql-cve-2013-1861.patch
 Patch27: community-mysql-innodbwarn.patch
 Patch28: community-mysql-covscan-signexpr.patch
 Patch29: community-mysql-covscan-stroverflow.patch
+Patch30: community-mysql-pluginerrmsg.patch
 
 BuildRequires: perl, readline-devel, openssl-devel
 BuildRequires: cmake, ncurses-devel, zlib-devel, libaio-devel
@@ -252,6 +253,7 @@ the MySQL sources.
 %patch27 -p1
 %patch28 -p1
 %patch29 -p1
+%patch30 -p1
 
 # workaround for upstream bug #56342
 rm -f mysql-test/t/ssl_8k_key-master.opt
@@ -715,6 +717,10 @@ rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/solaris/postinstall-solaris
 %{_mandir}/man1/mysql_client_test.1*
 
 %changelog
+* Mon Jul  1 2013 Honza Horak <hhorak at redhat.com> 5.5.32-5
+- Fix misleading error message when uninstalling built-in plugins
+  Related: #966645
+
 * Thu Jun 27 2013 Honza Horak <hhorak at redhat.com> 5.5.32-4
 - Remove external man pages, upstream fixed man pages license
 - Apply fixes found by Coverity static analysis tool


More information about the scm-commits mailing list