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.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.040 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.