Bug #51771 UNINSTALL PLUGIN misleading error message for non-dynamic plugins
Submitted: 5 Mar 2010 16:31 Modified: 6 Jun 2014 2:21
Reporter: Paul DuBois Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Errors Severity:S3 (Non-critical)
Version:5.1+ OS:Any
Assigned to: CPU Architecture:Any

[5 Mar 2010 16:31] Paul DuBois
Description:
If a plugin is dynamic (loaded from an object file with --plugin-load or INSTALL PLUGIN), it can be uninstalled with UNINSTALL PLUGIN. For example, if you use InnoDB Plugin in MySQL 5.1, it's loaded from the ha_innodb_plugin.so file on Unix and you can uninstall it:

mysql> select * from information_schema.plugins where PLUGIN_NAME='innodb'\G
*************************** 1. row ***************************
           PLUGIN_NAME: InnoDB
        PLUGIN_VERSION: 1.0
         PLUGIN_STATUS: ACTIVE
           PLUGIN_TYPE: STORAGE ENGINE
   PLUGIN_TYPE_VERSION: 50145.0
        PLUGIN_LIBRARY: ha_innodb_plugin.so
PLUGIN_LIBRARY_VERSION: 1.0
         PLUGIN_AUTHOR: Innobase Oy
    PLUGIN_DESCRIPTION: Supports transactions, row-level locking, and foreign keys
        PLUGIN_LICENSE: GPL
1 row in set (0.00 sec)

mysql> uninstall plugin innodb;
Query OK, 0 rows affected (0.77 sec)

In MySQL 5.5, the InnoDB Plugin is the default version and it's compiled in (note NULL in the PLUGIN_LIBRARY column):

mysql> select * from information_schema.plugins where PLUGIN_NAME='innodb'\G
*************************** 1. row ***************************
           PLUGIN_NAME: InnoDB
        PLUGIN_VERSION: 1.0
         PLUGIN_STATUS: ACTIVE
           PLUGIN_TYPE: STORAGE ENGINE
   PLUGIN_TYPE_VERSION: 50503.0
        PLUGIN_LIBRARY: NULL
PLUGIN_LIBRARY_VERSION: NULL
         PLUGIN_AUTHOR: Innobase Oy
    PLUGIN_DESCRIPTION: Supports transactions, row-level locking, and foreign keys
        PLUGIN_LICENSE: GPL
1 row in set (0.01 sec)

In this case, the plugin cannot be uninstalled:

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.

How to repeat:
See above.

Suggested fix:
For an existing non-dynamic plugin, the error message should specify that the plugin cannot be uninstalled, not that it does not exist.
[5 Mar 2010 18:21] MySQL Verification Team
Thank you for the bug report.

C:\DBS>c:\dbs\5.1\bin\mysql -uroot --port=3306 --prompt="mysql 5.1 >"
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.45-Win X64-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql 5.1 >select * from information_schema.plugins where PLUGIN_NAME='innodb'\G
*************************** 1. row ***************************
           PLUGIN_NAME: InnoDB
        PLUGIN_VERSION: 1.0
         PLUGIN_STATUS: ACTIVE
           PLUGIN_TYPE: STORAGE ENGINE
   PLUGIN_TYPE_VERSION: 50145.0
        PLUGIN_LIBRARY: ha_innodb_plugin.dll
PLUGIN_LIBRARY_VERSION: 1.0
         PLUGIN_AUTHOR: Innobase Oy
    PLUGIN_DESCRIPTION: Supports transactions, row-level locking, and foreign keys
        PLUGIN_LICENSE: GPL
1 row in set (0.03 sec)

mysql 5.1 >uninstall plugin innodb;
Query OK, 0 rows affected (0.45 sec)

mysql 5.1 >exit
Bye

C:\DBS>55

C:\DBS>c:\dbs\5.5\bin\mysql -uroot --port=3540 --prompt="mysql 5.5 >"
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.99-m3-Win X64 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql 5.5 >select * from information_schema.plugins where PLUGIN_NAME='innodb'\G
*************************** 1. row ***************************
           PLUGIN_NAME: InnoDB
        PLUGIN_VERSION: 1.0
         PLUGIN_STATUS: ACTIVE
           PLUGIN_TYPE: STORAGE ENGINE
   PLUGIN_TYPE_VERSION: 50599.0
        PLUGIN_LIBRARY: NULL
PLUGIN_LIBRARY_VERSION: NULL
         PLUGIN_AUTHOR: Innobase Oy
    PLUGIN_DESCRIPTION: Supports transactions, row-level locking, and foreign keys
        PLUGIN_LICENSE: GPL
1 row in set (0.00 sec)

mysql 5.5 >uninstall plugin innodb;
ERROR 1305 (42000): PLUGIN innodb does not exist
mysql 5.5 >
[11 Nov 2013 17:45] Paul DuBois
Any progress on this?
[6 Jun 2014 2:21] Paul DuBois
Noted in 5.7.5 changelog.

For an existing nondynamic (built-in) plugin, the error message for
an attempted UNINSTALL PLUGIN was misleading (the plugin does not
exist). Now the message indicates that built-in plugins cannot be
uninstalled.