<div>Hello,</div><div>I am testing what happens to the cluster when nodes are shutdown. &nbsp;The results of my testing have not been positive. &nbsp;I hope to either be advised if I have a mistake in my cluster setup or if something is really going wrong.</div><div><br></div><div>The issue is when I shutdown a server using the Windows Services to stop a node the cluster does fail over the queue but does not continue delivering messages to the subscriber. &nbsp;The subscriber also does not receive any errors. &nbsp;The client's connection still has a running status but no data flows. &nbsp;I am able to reproduce this error.</div><div><br></div><div>I have added two test run results to this email. I have more tests and the results saved if more information is required. &nbsp;I can also rerun future tests.</div><div><br></div><div>I have the following puny virtual machines for my cluster.</div><div>3 Virtual Machines</div><div>•<span class="Apple-tab-span" style="white-space:pre">        </span>Windows 2008 R2 sp1 64-bit</div><div>•<span class="Apple-tab-span" style="white-space:pre">        </span>1 GB of RAM</div><div>•<span class="Apple-tab-span" style="white-space:pre">        </span>16 GB of drive space free</div><div>RabbitMQ: 2.8.7</div><div>Erlang: R15B02</div><div>RabbitMQ is setup as the following on each of the nodes:</div><div>[<span class="Apple-tab-span" style="white-space:pre">        </span> {kernel, [{inet_dist_listen_min, 55021}, {inet_dist_listen_max, 55021} ] },</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>{rabbit,&nbsp;</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>[{cluster_nodes, ['rabbit@RIOBARON-1', 'rabbit@RIOOVERLORD-1', 'rabbit@CUST1-MASTER']}</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>,{vm_memory_high_watermark, 0.2}]</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}<span class="Apple-tab-span" style="white-space:pre">        </span></div><div>].</div><div><br></div><div>Virtual Host: MoBunniesMoProblems</div><div>Queue: MoData: Mirror(all) and Durable</div><div>Admin is setup on all nodes.</div><div>Using the .NET client version: 2.8.7 (nuget download)</div><div>The publisher uses SelectConfirm with messages set to persistent.</div><div>The subscriber uses BasicConsume with BasicQos set depending on the test. (10, 1000, 5)</div><div>Message size has been 3,196 bytes</div><div>100,000 messages sent in each test.</div><div><br></div><div>---------------------------------------------------------------------------------------------</div><div>Test 01:</div><div>Assumptions: shutdown cluster node. &nbsp;A new server will be master of the queue. &nbsp;subscriber should continue to receive messages. &nbsp;reconnection is possible and duplicate messages are possible.</div><div>Result: A node took ownership of the node's queue. &nbsp;The subscriber failed to continue after the node was shutdown. &nbsp;connection was never dropped.</div><div><br></div><div>Test Notes</div><div>Before testing make sure all servers in the cluster are active and see each other. &nbsp;Admin confirmed this with all green for nodes.</div><div>Publish 100k messages 3,196 in size with no subscriber active.</div><div>When all messages have been published Turn on subscriber.</div><div>During subscriber's active download of the messages shut down the node that is the master of the queue.</div><div>Queue will fail over to the next oldest node.</div><div>Subscriber connection will not be inturrupted but will stop receiving data.</div><div><br></div><div>riobaron-1: the connection server. &nbsp;The publisher will send to this server. &nbsp;The subscriber will connect to this server.</div><div>riooverlord-1: MoData queue master. &nbsp;queue was mirrored on riobaron-1 and cust1-master. &nbsp;Stats server.</div><div>cust1-master: mirror: second oldest server in the cluster. &nbsp;</div><div><br></div><div>During the publishing the high watermark for memory and drive space was never reached.</div><div><br></div><div>After riooverlord-1 was shutdown using Windows Service manager to shutdown the rabbitMQ service. &nbsp;cust1-master was promoted as the MoData queue master.</div><div>Subscriber data send stopped but the connection was still active. &nbsp;Timeout on the connection was set to 25 seconds. &nbsp;The connection never timed out even after letting it sit for 24 hours.</div><div><br></div><div>Results of log files:</div><div>riobaron-1's log file</div><div>=INFO REPORT==== 16-Oct-2012::08:02:15 ===</div><div>rabbit on node 'rabbit@RIOOVERLORD-1' down</div><div><br></div><div><br></div><div>=ERROR REPORT==== 16-Oct-2012::08:02:15 ===</div><div>Mnesia('rabbit@RIOBARON-1'): ** ERROR ** mnesia_event got {inconsistent_database, bad_decision, 'rabbit@RIOOVERLORD-1'}</div><div><br></div><div>cust1-master's log file</div><div><br></div><div>=INFO REPORT==== 16-Oct-2012::08:02:18 ===</div><div>Statistics database started.</div><div><br></div><div><br></div><div>=INFO REPORT==== 16-Oct-2012::08:02:18 ===</div><div>Mirrored-queue (queue 'Q' in vhost '/'): Slave &lt;'rabbit@CUST1-MASTER'.2.255.0&gt; saw deaths of mirrors &lt;'rabbit@RIOOVERLORD-1'.1.220.0&gt;&nbsp;</div><div><br></div><div><br></div><div>=INFO REPORT==== 16-Oct-2012::08:02:18 ===</div><div>Mirrored-queue (queue 'Q' in vhost '/'): Promoting slave &lt;'rabbit@CUST1-MASTER'.2.255.0&gt; to master</div><div><br></div><div><br></div><div>=INFO REPORT==== 16-Oct-2012::08:02:18 ===</div><div>rabbit on node 'rabbit@RIOOVERLORD-1' down</div><div><br></div><div><br></div><div>=INFO REPORT==== 16-Oct-2012::08:02:18 ===</div><div>Mirrored-queue (queue 'MoData' in vhost 'MoBunnyMoProblems'): Slave &lt;'rabbit@CUST1-MASTER'.2.253.0&gt; saw deaths of mirrors &lt;'rabbit@RIOOVERLORD-1'.1.219.0&gt;&nbsp;</div><div><br></div><div><br></div><div>=INFO REPORT==== 16-Oct-2012::08:02:18 ===</div><div>Mirrored-queue (queue 'MoData' in vhost 'MoBunnyMoProblems'): Promoting slave &lt;'rabbit@CUST1-MASTER'.2.253.0&gt; to master</div><div><br></div><div><br></div><div>=ERROR REPORT==== 16-Oct-2012::08:02:18 ===</div><div>Mnesia('rabbit@CUST1-MASTER'): ** ERROR ** mnesia_event got {inconsistent_database, bad_decision, 'rabbit@RIOOVERLORD-1'}</div><div><br></div><div>riooverlord-1's log file</div><div><br></div><div>=INFO REPORT==== 16-Oct-2012::08:02:16 ===</div><div>Stopping Rabbit</div><div><br></div><div><br></div><div>=INFO REPORT==== 16-Oct-2012::08:02:16 ===</div><div>&nbsp; &nbsp; application: rabbitmq_management</div><div>&nbsp; &nbsp; exited: stopped</div><div>&nbsp; &nbsp; type: permanent</div><div><br></div><div><br></div><div>=INFO REPORT==== 16-Oct-2012::08:02:16 ===</div><div>&nbsp; &nbsp; application: rabbitmq_management_agent</div><div>&nbsp; &nbsp; exited: stopped</div><div>&nbsp; &nbsp; type: permanent</div><div><br></div><div><br></div><div>=INFO REPORT==== 16-Oct-2012::08:02:16 ===</div><div>stopped TCP Listener on 0.0.0.0:5672</div><div><br></div><div><br></div><div>=INFO REPORT==== 16-Oct-2012::08:02:16 ===</div><div>stopped TCP Listener on [::]:5672</div><div><br></div><div><br></div><div>=INFO REPORT==== 16-Oct-2012::08:02:16 ===</div><div>&nbsp; &nbsp; application: rabbit</div><div>&nbsp; &nbsp; exited: stopped</div><div>&nbsp; &nbsp; type: permanent</div><div><br></div><div><br></div><div>=ERROR REPORT==== 16-Oct-2012::08:02:16 ===</div><div>Error in process &lt;0.20312.2&gt; on node 'rabbit@RIOOVERLORD-1' with exit value: {badarg,[{mnesia_tm,commit_participant,6,[{file,"mnesia_tm.erl"},{line,1750}]}]}</div><div><br></div><div><br></div><div><br></div><div>=INFO REPORT==== 16-Oct-2012::08:02:16 ===</div><div>&nbsp; &nbsp; application: mnesia</div><div>&nbsp; &nbsp; exited: stopped</div><div>&nbsp; &nbsp; type: permanent</div><div><br></div><div><br></div><div>=INFO REPORT==== 16-Oct-2012::08:02:16 ===</div><div>&nbsp; &nbsp; application: os_mon</div><div>&nbsp; &nbsp; exited: stopped</div><div>&nbsp; &nbsp; type: permanent</div><div><br></div><div><br></div><div>=INFO REPORT==== 16-Oct-2012::08:02:16 ===</div><div>Halting Erlang VM</div><div><br></div><div><br></div><div>---------------------------------------------------------------------------------------------</div><div>Test 02:</div><div>Assumption: send data into cluster. shutdown cluster master node of the queue. &nbsp;subscriber should continue to receive messages.</div><div>Result: a new node promoted to master of the queue upon the shutdown. &nbsp;subscriber did not receive data after the promotion. &nbsp;connection was still running and no errors from the client.</div><div><br></div><div>Test Notes:</div><div>All nodes in the cluster were online and green. &nbsp;The queue was mirrored on all nodes.</div><div>queue starts off with 0 messages in the queue.</div><div><br></div><div>riobaron-1: connection server. &nbsp;publisher connected to this server. &nbsp;subscriber connects to this server. &nbsp;youngest server in the cluster</div><div>cust1-master: stats server and master of MoData queue. &nbsp; oldest server</div><div>riooverlord: second oldest server.</div><div><br></div><div>After the publisher completed the subscriber was turned on. &nbsp;During the subscribers connection and active data being received the riobaron-1 server was shutdown. &nbsp;The subscriber reconnected to riooverlord-1. &nbsp;Data resumed to send to the subscriber. &nbsp;During the subscription the cust1-master node was shutdown. &nbsp;Subscription stopped. &nbsp;connection remained active and running.</div><div>rioverlord-1 become the new master of the MoData queue.</div><div><br></div><div>Waited on the cluster but the connection remained active but no data received from the cluster. &nbsp;When the client is shutdown and makes a new connection sending will resume.</div><div><br></div><div>Results from log files:</div><div><br></div><div>riobaron-1:&nbsp;</div><div>=INFO REPORT==== 17-Oct-2012::08:15:35 ===</div><div>rabbit on node 'rabbit@RIOOVERLORD-1' up</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:24:46 ===</div><div>Stopping Rabbit</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:24:46 ===</div><div>&nbsp; &nbsp; application: rabbitmq_management</div><div>&nbsp; &nbsp; exited: stopped</div><div>&nbsp; &nbsp; type: permanent</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:24:46 ===</div><div>&nbsp; &nbsp; application: rabbitmq_management_agent</div><div>&nbsp; &nbsp; exited: stopped</div><div>&nbsp; &nbsp; type: permanent</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:24:46 ===</div><div>stopped TCP Listener on 0.0.0.0:5672</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:24:46 ===</div><div>stopped TCP Listener on [::]:5672</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:24:46 ===</div><div>&nbsp; &nbsp; application: rabbit</div><div>&nbsp; &nbsp; exited: stopped</div><div>&nbsp; &nbsp; type: permanent</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:24:46 ===</div><div>&nbsp; &nbsp; application: mnesia</div><div>&nbsp; &nbsp; exited: stopped</div><div>&nbsp; &nbsp; type: permanent</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:24:46 ===</div><div>&nbsp; &nbsp; application: os_mon</div><div>&nbsp; &nbsp; exited: stopped</div><div>&nbsp; &nbsp; type: permanent</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:24:46 ===</div><div>Halting Erlang VM</div><div><br></div><div>cust1-master:</div><div>=INFO REPORT==== 17-Oct-2012::08:15:12 ===</div><div>Statistics database started.</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:15:32 ===</div><div>rabbit on node 'rabbit@RIOBARON-1' up</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:15:38 ===</div><div>rabbit on node 'rabbit@RIOOVERLORD-1' up</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:16:03 ===</div><div>Adding mirror of queue 'MoData' in vhost 'MoBunnyMoProblems' on node 'rabbit@RIOOVERLORD-1': &lt;3151.343.0&gt;</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:16:03 ===</div><div>Adding mirror of queue 'MoData' in vhost 'MoBunnyMoProblems' on node 'rabbit@RIOBARON-1': &lt;3150.354.0&gt;</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:24:49 ===</div><div>rabbit on node 'rabbit@RIOBARON-1' down</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:27:11 ===</div><div>rabbit on node 'rabbit@RIOBARON-1' up</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:46:05 ===</div><div>rabbit on node 'rabbit@RIOBARON-1' down</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:46:44 ===</div><div>Stopping Rabbit</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:46:44 ===</div><div>&nbsp; &nbsp; application: rabbitmq_management</div><div>&nbsp; &nbsp; exited: stopped</div><div>&nbsp; &nbsp; type: permanent</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:46:44 ===</div><div>&nbsp; &nbsp; application: rabbitmq_management_agent</div><div>&nbsp; &nbsp; exited: stopped</div><div>&nbsp; &nbsp; type: permanent</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:46:44 ===</div><div>stopped TCP Listener on 0.0.0.0:5672</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:46:44 ===</div><div>stopped TCP Listener on [::]:5672</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:46:45 ===</div><div>&nbsp; &nbsp; application: rabbit</div><div>&nbsp; &nbsp; exited: stopped</div><div>&nbsp; &nbsp; type: permanent</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:46:45 ===</div><div>&nbsp; &nbsp; application: mnesia</div><div>&nbsp; &nbsp; exited: stopped</div><div>&nbsp; &nbsp; type: permanent</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:46:45 ===</div><div>&nbsp; &nbsp; application: os_mon</div><div>&nbsp; &nbsp; exited: stopped</div><div>&nbsp; &nbsp; type: permanent</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:46:45 ===</div><div>Halting Erlang VM</div><div><br></div><div>riooverlord-1:</div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:24:47 ===</div><div>rabbit on node 'rabbit@RIOBARON-1' down</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:24:47 ===</div><div>Mirrored-queue (queue 'MoData' in vhost 'MoBunnyMoProblems'): Slave &lt;'rabbit@RIOOVERLORD-1'.3.343.0&gt; saw deaths of mirrors &lt;'rabbit@RIOBARON-1'.2.354.0&gt;&nbsp;</div><div><br></div><div><br></div><div>=INFO REPORT==== 17-Oct-2012::08:24:47 ===</div><div>Mirrored-queue (queue 'Q' in vhost '/'): Slave &lt;'rabbit@RIOOVERLORD-1'.3.258.0&gt; saw deaths of mirrors &lt;'rabbit@RIOBARON-1'.2.252.0&gt;&nbsp;</div><div><br></div><div><br></div><div><br></div>