Damn it, fooled by gmail's UI again and forgot to CC the list.<br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Tony Garnock-Jones</b> <span dir="ltr"><<a href="mailto:tonygarnockjones%2Brabbitmq@gmail.com">tonygarnockjones+rabbitmq@gmail.com</a>></span><br>
Date: 20 September 2011 06:08<br>Subject: Re: [rabbitmq-discuss] Work on plugins<br>To: Simon MacMullen <<a href="mailto:simon@rabbitmq.com">simon@rabbitmq.com</a>><br><br><br><div class="im">On 20 September 2011 05:52, Simon MacMullen <span dir="ltr"><<a href="mailto:simon@rabbitmq.com" target="_blank">simon@rabbitmq.com</a>></span> wrote:<br>
</div><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
could delete exchanges and bindings seems pretty alarming to me.<br></blockquote></div><div><br>Agreed.<br> </div><div class="im"><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">
It seems that this is primarily an issue around exchange type plugins. I wonder if we could just not recover exchanges that have an unrecognised type? The trouble is, then you have a "hidden" exchange that will pop back as soon as you reinstall the plugin, but without the plugin you can't get rid of it, and attempts to redeclare it with a different type will always fail. Hmm.<br>
</blockquote></div><div><br>What about not deleting them, but if during recovery an exchange is found with an unknown type, warning about it in the log and starting it with an "inert exchange type" driver that simply drops all messages routed through it? (It might also log each time it does.)<br>
<br>Then if later Rabbit is restarted with the appropriate exchange type added again, everything is back to normal, but people are warned about possibly-unexpected behaviour and no information is lost without explicit action. Also, exchange.delete would work to get rid of any unwanted exchanges after plugin removal.<br>
<font color="#888888">
<br>Tony<br><br></font></div></div>
</div><br>