[rabbitmq-discuss] Work on plugins

Matthew Sackman matthew at rabbitmq.com
Mon Sep 19 23:01:06 BST 2011


Hi Alvaro,

On Mon, Sep 19, 2011 at 10:51:53PM +0200, Alvaro Videla wrote:
> Something I noticed while playing with custom exchanges for RabbitMQ
> is that if you create them and later you remove the plugin without
> deleting the exchange then RabbitMQ won't start at all because the
> recovery process will fail since it can't find the custom exchange
> module.

Yeah, I can certainly believe that'll seriously upset things.

> Wouldn't it be nice to have an "uninstall plugin" kind of command?
> Perhaps also in the same way you do -rabbit_boot_step(). declarations
> on your modules, you could add something like a
> -rabbit_uninstall_plugin(). declaration that could be executed to
> remove the plugin. Then it's up to the plugin developer to take care
> at this point of removing Mnesia entries and other stuff related to
> his plugin.

Well I've often thought about having a -rabbit_shutdown_step()
complement to -rabbit_boot_step() but so far there haven't really been
any problems that we can't solve just by careful use of supervisor
shutdown sequences. That's not to say that we won't need it eventually.

But that's a different issue from what you're after. Currently, all
plugin installation and removal is done with Rabbit shutdown. The boot
steps are run every time rabbit is booted, not just when a new plugin is
discovered. There is currently no uninstallation step, as you know, and
there is no uninstallation tool. However, that's changing soon, though
again, it'll at least in its first guise again work with Rabbit shutdown
and it won't support any uninstall hooks. But I think it's a reasonable
thing to want - there's definitely utility for it, so I'll raise a bug
for it. I can't really promise that it'll get looked at promptly though.

Matthew


More information about the rabbitmq-discuss mailing list