LP #1706846: INSTALL/UNINSTALL PLUGIN is replicated to other nodes
Description
Environment
Smart Checklist
Activity

lpjirasync January 14, 2018 at 7:10 PM
**Comment from Launchpad by: Krunal Bauskar on: 28-07-2017 04:57:11
PXC inherit this behavior from PS.
Let's understand PS behavior.
Start single PS server node.
Open 2 connections
On conn-1
INSTALL PLUGIN audit_log SONAME 'audit_log.so';
show plugins; ..... audit_log plugin is listed and ACTIVE
On conn-2
show plugins; ..... audit_log plugin is listed and ACTIVE
On conn-1
UNINSTALL PLUGIN audit_log;
show plugins;
audit_log | DELETED | AUDIT | audit_log.so | GPL |
When there is parallel active connection then plugin is marked as DELETED but entry is still visible through said show plugins.
------------------------------------------------------
In case of PXC, replicating node execution is through background thread and so entry remains.
If a new client connection is open post uninstall of plugin the entry is not seen.

lpjirasync January 14, 2018 at 7:09 PM
**Comment from Launchpad by: Jaime Sicam on: 27-07-2017 04:07:00
I get the same result on PXC 5.6.36
Details
Details
Assignee

Reporter

Labels
Priority
Smart Checklist
Open Smart Checklist
Smart Checklist

**Reported in Launchpad by Jaime Sicam last update 28-07-2017 04:57:20
Tested on PXC 5.7.17.
Run INSTALL PLUGIN audit_log.so SONAME 'audit_log.so' on any node;
Then, run SHOW PLUGINS on all nodes, and the plugin is installed everywhere.
audit_log
ACTIVE
AUDIT
audit_log.so
GPL
But if you try to uninstall the plugin, it will be uninstalled on the node where it was called, but on other nodes the status is DELETED:
mysql> UNINSTALL PLUGIN audit_log;
Query OK, 0 rows affected, 1 warning (0.38 sec)
SHOW PLUGINS on node where it is called shows audit_log is not listed while output on other nodes is:
audit_log
DELETED
AUDIT
audit_log.so
GPL
I think there are two bugs in this case. One is INSTALL PLUGIN is allowed to be replicated in the cluster. The second is if you try to uninstall the audit log on the other nodes, you will need to restart it even if the cluster is idle.