Details
-
Task
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
UNINSTALL is not safe for MariaDB_FUNCTION_PLUGIN at the moment.
This is the relevant code:
Create_func *builder=
|
reinterpret_cast<Plugin_function*>(plugin_decl(plugin)->info)-> |
create_func();
|
plugin_unlock(thd, plugin);
|
return builder; |
It immediately unlocks the plugin, so UNINSTALL can happen when the plugin functions is in use.
We should implement proper unlocking for plugin functions.
- The above piece of the code should not call plugin_unlock()
- Every Item_func loaded from a plugin should:
- decrement ref counter in destructor
- increment ref counter in clone()
Attachments
Issue Links
- relates to
-
MDEV-20837 Add MariaDB_FUNCTION_PLUGIN
- Closed