← Back to team overview

linux-traipu team mailing list archive

Re: [Bug 971300] Re: drizzle: should not abort when a plugin is not available

 

Excerpts from Stewart Smith's message of Mon Apr 02 07:33:26 UTC 2012:
> The behaviour of not hard failing when a requested plugin is not found
> has been the cause of much pain in the past with MySQL. In MySQL, if
> InnoDB failed to start, the server would still start and then all heck
> would break loose (possibly having tables in MyISAM instead of InnoDB,
> possibly having data not there, possibly people getting really
> confused).
> 
> Is there another way around the problem of debian not removing
> configuration files?
> 

Yes, we do this with apache. Have the packages move the inis to

/etc/drizzle/plugins.available

Then have an 'drizzleplugin --enable foo' and 'drizzleplugin
--disable foo' command available which simply manages symlinks in
/etc/drizzle/plugins.enabled (which drizzle would be including).

On removal without purge, disable the plugin... and on installation,
enable the plugin.

This will preserve local changes to config files while a plugin is
removed but not purged, and will also prevent a removal without purge
from breaking the server.

This will involve renaming conffiles, which is a PITA, but much easier
now that dpkg has builtin support with dpkg-maintscript-helper.

-- 
You received this bug notification because you are a member of UBUNTU -
AL - BR, which is subscribed to Drizzle.
https://bugs.launchpad.net/bugs/971300

Title:
  drizzle: should not abort when a plugin is not available

Status in A Lightweight SQL Database for Cloud Infrastructure and Web Applications:
  Invalid

Bug description:
  For example, when the js plugin is compiled  but not installed (e.g on
  Debian is has to be an extra package as it has build-dependencies are
  only available on certain architectures).

  In this case, when drizzle is installed but the js-plugin package not,
  drizzle fails to start:

  #drizzled
  Can't open shared library '/usr/lib/drizzle7/libjs_plugin.so' (errno: 0 /usr/lib/drizzle7/libjs_plugin.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden)
  Couldn't load plugin library named 'js'.

  Aborting:"Failed to initialize plugins". Abort was called from
  drizzled/drizzled.cc:1341 in init_variables_after_daemonizing()

  
  I think this can be handled in a better way, also to better integrate into Distribution packasging (to avoid that if a plugin in removed that the drizzle fails to start without reconfiguration)

  For example, if a plugin is not found, but not explictly enabled, just ignore this. If it is enabled, it should also not fail (if it is not a dependeny on a other installed plugin. It should not fail, because removing a package does not mean that its configuration gets deleted.
  (PHP does it like thos: it warns in the log when it does not find an extension)

  coldtobi

To manage notifications about this bug go to:
https://bugs.launchpad.net/drizzle/+bug/971300/+subscriptions


References