Force all plugins
MIGRATED TO https:/
Add a new boolean server command line option
--force-
MySQL behavior and TRUE is the new default. If TRUE, the server
will abort its startup if any of the plugins in the mysql.plugin
fail to load.
Add a new value to the --plugin-name variable, OPTIONAL. It will allow for the specified plugin to be loaded but any load error will not be fatal.
Interaction with other plugin load-controlling options (http://
--plugin-load, --plugin-load-add: failure to load any of these
plugins will result in server startup abort too.
--skip-
in mysql.plugin table to be loaded, thus no forcing. If both
--skip-
mysql.plugin plugins will be skipped and plugin-load ones forced.
--plugin-
forced plugin load is skipped for this plugin.
--plugin-
--plugin-
unloaded at runtime, otherwise a no-op.
The motivation for this option is 3rd party storage engine plugins
such as TokuDB. Their failure to load results in reduced server
functionality, for example, existing tables in that storage engine
become inaccessible. Moreover, if, for example, crash recovery is
needed, it will run partially, may choose the wrong transaction
log coordinator, resulting in crash recovery failure, server
abort, and the need to perform heuristic or manual crash
recovery. However mysql.plugin schema does not differentiate
between the plugin types, thus we cannot tell whether any plugin
is a storage engine without attempting to load it first. That's
why we force initialization for all installed plugins.
Blueprint information
- Status:
- Started
- Approver:
- None
- Priority:
- Not
- Drafter:
- Laurynas Biveinis
- Direction:
- Approved
- Assignee:
- None
- Definition:
- Approved
- Series goal:
- Accepted for 5.6
- Implementation:
- Started
- Milestone target:
- None
- Started by
- Laurynas Biveinis
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
Roel: This is a great blueprint. When for example RocksDB fails to load, but TokuDB and InnoDB load, then data inconsistency (without proper app checking) is quite likely if multiple engines are used in which data may refer to each other, etc.