I&#39;ve ran into something odd. Previously, using RabbitMQ 2.8.5 and R13B03 (the default Erlang for Ubunto 10.04) I had three brokers (mq1, mq2, mq3) in a symmetric exchange configuration (e.g, mq1 was the upstream for mq2/mq3, and vice-versa.)<br>
<br>Everything worked groovy and I could connect to all the brokers, I could pump messages through my defined� topic exchange (&#39;skytap&#39;) between federated brokers, and so forth.<br><br>After upgrading my Erlang version to R15B01, brokers mq2 and mq3 start fine, work as expected and I see my &#39;skytap&#39; exchange on them. However, mq1 mostly starts up (I see lots of mnesia spew), but it never accepts connections, I can&#39;t log into the management console. The beam.smp process is running on mq3, however.<br>
<br>My config file for mq1 looks like this:<br>[<br>��� {mnesia, [{debug, trace}<br>������������ ]<br>��� },<br>��� {rabbitmq_federation,<br>������� [ {exchanges, [[{exchange, &quot;skytap&quot;},<br>����������������������� {type, &quot;topic&quot;},<br>
����������������������� {upstream_set, &quot;my_upstreams&quot;}]]},<br><br>��������� {upstream_sets, [{&quot;my_upstreams&quot;, [[{connection, &quot;upstream-server-mq2&quot;},<br>��������������������������������������������� {exchange, &quot;skytap&quot;}],<br>
�������������������������������������������� [{connection, &quot;upstream-server-mq3&quot;},<br>��������������������������������������������� {exchange, &quot;skytap&quot;}]<br>�������������������������������������� ]}<br>
�������������������� ]},<br>��������� {connections, [{&quot;upstream-server-mq2&quot;, [{host, &quot;mq2&quot;}<br>������������������������������������������������ ]<br>������������������������ },<br>������������������������ {&quot;upstream-server-mq3&quot;, [{host, &quot;mq3&quot;}]<br>
������������������������ }<br>����������������������� ]<br>��������� }<br>������� ]<br>��� }<br>].<br><br>Whereas for both mq2 and mq3:<br><br>[<br>��� {mnesia, [{debug, trace}<br>������������ ]<br>��� },<br>��� {rabbitmq_federation,<br>
������� [ {exchanges, [[{exchange, &quot;skytap&quot;},<br>����������������������� {type, &quot;topic&quot;},<br>����������������������� {upstream_set, &quot;my_upstreams&quot;}]]},<br><br>��������� {upstream_sets, [{&quot;my_upstreams&quot;, [[{connection, &quot;upstream-server&quot;},<br>
���������������������������������������� {exchange, &quot;skytap&quot;}]<br>�������������������������������������� ]}<br>�������������������� ]},<br>��������� {connections, [{&quot;upstream-server&quot;, [{host, &quot;mq1&quot;}<br>
��������������������������������������� ]}<br>������������������ ]}<br>������� ]<br>��� }<br>].<br><br>The rabbit@mq1.log file has this:<br>=INFO REPORT==== 21-Aug-2012::17:09:23 ===<br>Limiting to approx 924 file handles (829 sockets)<br>
<br>=INFO REPORT==== 21-Aug-2012::17:09:23 ===<br>Memory limit set to 399MB of 999MB total.<br><br>=INFO REPORT==== 21-Aug-2012::17:09:23 ===<br>Disk free limit set to 953MB<br><br>=WARNING REPORT==== 21-Aug-2012::17:09:23 ===<br>
Could not find exchange type x-federation.<br><br>=WARNING REPORT==== 21-Aug-2012::17:09:23 ===<br>Could not find exchange type x-federation.<br><br>=INFO REPORT==== 21-Aug-2012::17:09:23 ===<br>msg_store_transient: using rabbit_msg_store_ets_index to provide index<br>
<br>=INFO REPORT==== 21-Aug-2012::17:09:23 ===<br>msg_store_persistent: using rabbit_msg_store_ets_index to provide index<br><br>=WARNING REPORT==== 21-Aug-2012::17:09:23 ===<br>Could not find exchange type x-federation.<br>
<br>=INFO REPORT==== 21-Aug-2012::17:09:23 ===<br>started TCP Listener on <a href="http://0.0.0.0:5672">0.0.0.0:5672</a><br><br>=INFO REPORT==== 21-Aug-2012::17:09:24 ===<br>accepting AMQP connection &lt;0.212.0&gt; (<a href="http://192.168.78.18:55219">192.168.78.18:55219</a> -&gt; <a href="http://192.168.78.16:5672">192.168.78.16:5672</a>)<br>
<br>=INFO REPORT==== 21-Aug-2012::17:09:24 ===<br>accepting AMQP connection &lt;0.219.0&gt; (<a href="http://192.168.78.17:58709">192.168.78.17:58709</a> -&gt; <a href="http://192.168.78.16:5672">192.168.78.16:5672</a>)<br>
<br>=ERROR REPORT==== 21-Aug-2012::17:09:24 ===<br>connection &lt;0.212.0&gt;, channel 2 - error:<br>{amqp_error,not_found,<br>����������� &quot;no exchange &#39;federation: skytap -&gt; <a href="mailto:rabbit@mq3.mpietrek.internal.illumita.com">rabbit@mq3.mpietrek.internal.illumita.com</a> B&#39; in vhost &#39;/&#39;&quot;,<br>
����������� &#39;exchange.delete&#39;}<br><br>=INFO REPORT==== 21-Aug-2012::17:09:24 ===<br>accepting AMQP connection &lt;0.233.0&gt; (<a href="http://192.168.78.18:50211">192.168.78.18:50211</a> -&gt; <a href="http://192.168.78.16:5672">192.168.78.16:5672</a>)<br>
<br>=ERROR REPORT==== 21-Aug-2012::17:09:24 ===<br>connection &lt;0.219.0&gt;, channel 2 - error:<br>{amqp_error,not_found,<br>����������� &quot;no exchange &#39;federation: skytap -&gt; <a href="mailto:rabbit@mq2.mpietrek.internal.illumita.com">rabbit@mq2.mpietrek.internal.illumita.com</a> A&#39; in vhost &#39;/&#39;&quot;,<br>
����������� &#39;exchange.delete&#39;}<br><br>=ERROR REPORT==== 21-Aug-2012::17:09:24 ===<br>connection &lt;0.233.0&gt;, channel 1 - error:<br>{amqp_error,command_invalid,&quot;unknown exchange type &#39;x-federation-upstream&#39;&quot;,<br>
����������� &#39;exchange.declare&#39;}<br><br>=INFO REPORT==== 21-Aug-2012::17:09:24 ===<br>accepting AMQP connection &lt;0.245.0&gt; (<a href="http://192.168.78.17:58290">192.168.78.17:58290</a> -&gt; <a href="http://192.168.78.16:5672">192.168.78.16:5672</a>)<br>
<br>=INFO REPORT==== 21-Aug-2012::17:09:24 ===<br>closing AMQP connection &lt;0.233.0&gt; (<a href="http://192.168.78.18:50211">192.168.78.18:50211</a> -&gt; <a href="http://192.168.78.16:5672">192.168.78.16:5672</a>)<br>
<br>=WARNING REPORT==== 21-Aug-2012::17:09:24 ===<br>Could not find exchange type x-federation.<br><br>=ERROR REPORT==== 21-Aug-2012::17:09:24 ===<br>connection &lt;0.245.0&gt;, channel 1 - error:<br>{amqp_error,command_invalid,&quot;unknown exchange type &#39;x-federation-upstream&#39;&quot;,<br>
����������� &#39;exchange.declare&#39;}<br><br>=INFO REPORT==== 21-Aug-2012::17:09:24 ===<br>closing AMQP connection &lt;0.245.0&gt; (<a href="http://192.168.78.17:58290">192.168.78.17:58290</a> -&gt; <a href="http://192.168.78.16:5672">192.168.78.16:5672</a>)<br>
<br>=WARNING REPORT==== 21-Aug-2012::17:09:24 ===<br>Could not find exchange type x-federation.<br><br>=WARNING REPORT==== 21-Aug-2012::17:09:24 ===<br>Could not find exchange type x-federation.<br><br>=WARNING REPORT==== 21-Aug-2012::17:09:24 ===<br>
Could not find exchange type x-federation.<br><br>----<br>And rabbit@mq2.log:<br><br>=WARNING REPORT==== 21-Aug-2012::17:09:20 ===<br>Connection (&lt;0.300.0&gt;) closing: received hard error {&#39;connection.close&#39;,320,<br>
���������������������������������������������������� &lt;&lt;&quot;CONNECTION_FORCED - broker forced connection closure with reason &#39;shutdown&#39;&quot;&gt;&gt;,<br>���������������������������������������������������� 0,0} from server<br>
<br>=INFO REPORT==== 21-Aug-2012::17:09:20 ===<br>Federation exchange &#39;skytap&#39; in vhost &#39;/&#39; disconnected from mq1:/:skytap<br>{upstream_channel_down,<br>��� {connection_closing,<br>������� {server_initiated_close,320,<br>
����������� &lt;&lt;&quot;CONNECTION_FORCED - broker forced connection closure with reason &#39;shutdown&#39;&quot;&gt;&gt;}}}<br><br>=ERROR REPORT==== 21-Aug-2012::17:09:20 ===<br>** Generic server &lt;0.300.0&gt; terminating <br>
** Last message in was {channel_exit,3,{writer,send_failed,{error,closed}}}<br>** When Server state == {state,amqp_network_connection,<br>��������������������������� {state,#Port&lt;0.5842&gt;,0,&lt;0.304.0&gt;,131072,<br>
������������������������������� {server_initiated_close,320,<br>����������������������������������� &lt;&lt;&quot;CONNECTION_FORCED - broker forced connection closure with reason &#39;shutdown&#39;&quot;&gt;&gt;},<br>������������������������������� true},<br>
��������������������������� &lt;0.299.0&gt;,&lt;0.302.0&gt;,<br>��������������������������� {amqp_params_network,&lt;&lt;&quot;guest&quot;&gt;&gt;,&lt;&lt;&quot;guest&quot;&gt;&gt;,<br>������������������������������� &lt;&lt;&quot;/&quot;&gt;&gt;,&quot;mq1&quot;,5672,0,0,0,infinity,none,<br>
������������������������������� [#Fun&lt;amqp_auth_mechanisms.plain.3&gt;,<br>�������������������������������� #Fun&lt;amqp_auth_mechanisms.amqplain.3&gt;],<br>������������������������������� [],[]},<br>��������������������������� 0,<br>
��������������������������� [{&lt;&lt;&quot;capabilities&quot;&gt;&gt;,table,<br>����������������������������� [{&lt;&lt;&quot;publisher_confirms&quot;&gt;&gt;,bool,true},<br>������������������������������ {&lt;&lt;&quot;exchange_exchange_bindings&quot;&gt;&gt;,bool,true},<br>
������������������������������ {&lt;&lt;&quot;basic.nack&quot;&gt;&gt;,bool,true},<br>������������������������������ {&lt;&lt;&quot;consumer_cancel_notify&quot;&gt;&gt;,bool,true}]},<br>���������������������������� {&lt;&lt;&quot;copyright&quot;&gt;&gt;,longstr,<br>
����������������������������� &lt;&lt;&quot;Copyright (C) 2007-2012 VMware, Inc.&quot;&gt;&gt;},<br>���������������������������� {&lt;&lt;&quot;information&quot;&gt;&gt;,longstr,<br>����������������������������� &lt;&lt;&quot;Licensed under the MPL.� See <a href="http://www.rabbitmq.com/">http://www.rabbitmq.com/</a>&quot;&gt;&gt;},<br>
���������������������������� {&lt;&lt;&quot;platform&quot;&gt;&gt;,longstr,&lt;&lt;&quot;Erlang/OTP&quot;&gt;&gt;},<br>���������������������������� {&lt;&lt;&quot;product&quot;&gt;&gt;,longstr,&lt;&lt;&quot;RabbitMQ&quot;&gt;&gt;},<br>
���������������������������� {&lt;&lt;&quot;version&quot;&gt;&gt;,longstr,&lt;&lt;&quot;2.8.5&quot;&gt;&gt;}],<br>��������������������������� #Fun&lt;amqp_connection_sup.0.39273983&gt;,<br>��������������������������� #Fun&lt;amqp_connection_sup.2.54430129&gt;,<br>
��������������������������� {closing,server_initiated_close,<br>������������������������������� {&#39;connection.close&#39;,320,<br>����������������������������������� &lt;&lt;&quot;CONNECTION_FORCED - broker forced connection closure with reason &#39;shutdown&#39;&quot;&gt;&gt;,<br>
����������������������������������� 0,0},<br>������������������������������� none}}<br>** Reason for termination == <br>** {function_clause,<br>������ [{amqp_network_connection,handle_message,<br>����������� [{channel_exit,3,{writer,send_failed,{error,closed}}},<br>
������������ {state,#Port&lt;0.5842&gt;,0,&lt;0.304.0&gt;,131072,<br>���������������� {server_initiated_close,320,<br>�������������������� &lt;&lt;&quot;CONNECTION_FORCED - broker forced connection closure with reason &#39;shutdown&#39;&quot;&gt;&gt;},<br>
���������������� true}],<br>����������� []},<br>������� {amqp_gen_connection,callback,3,[]},<br>������� {gen_server,handle_msg,5,[{file,&quot;gen_server.erl&quot;},{line,607}]},<br>������� {proc_lib,init_p_do_apply,3,[{file,&quot;proc_lib.erl&quot;},{line,227}]}]}<br>
<br>=ERROR REPORT==== 21-Aug-2012::17:09:20 ===<br>** Generic server &lt;0.305.0&gt; terminating <br>** Last message in was {inet_async,#Port&lt;0.5842&gt;,404,<br>�������������������������� {ok,&lt;&lt;0,10,0,50,1,64,75,67,79,78,78,69,67,84,73,<br>
�������������������������������� 79,78,95,70,79,82,67,69,68,32,45,32,98,114,<br>�������������������������������� 111,107,101,114,32,102,111,114,99,101,100,<br>�������������������������������� 32,99,111,110,110,101,99,116,105,111,110,32,<br>
�������������������������������� 99,108,111,115,117,114,101,32,119,105,116,<br>�������������������������������� 104,32,114,101,97,115,111,110,32,39,115,104,<br>�������������������������������� 117,116,100,111,119,110,39,0,0,0,0,206&gt;&gt;}}<br>
** When Server state == {state,#Port&lt;0.5842&gt;,&lt;0.300.0&gt;,&lt;0.302.0&gt;,<br>������������������������������ {method,rabbit_framing_amqp_0_9_1},<br>������������������������������ none}<br>** Reason for termination == <br>
** {socket_error,einval}<br><br>=WARNING REPORT==== 21-Aug-2012::17:09:20 ===<br>Federation exchange &#39;skytap&#39; in vhost &#39;/&#39; did not connect to mq1:/:skytap<br>{error,econnrefused}<br><br>=WARNING REPORT==== 21-Aug-2012::17:09:22 ===<br>
Federation exchange &#39;skytap&#39; in vhost &#39;/&#39; did not connect to mq1:/:skytap<br>{error,econnrefused}<br><br>=WARNING REPORT==== 21-Aug-2012::17:09:24 ===<br>Connection (&lt;0.412.0&gt;) closing: received hard error {&#39;connection.close&#39;,503,<br>
���������������������������������������������������� &lt;&lt;&quot;COMMAND_INVALID - unknown exchange type &#39;x-federation-upstream&#39;&quot;&gt;&gt;,<br>���������������������������������������������������� 40,10} from server<br>
<br>=INFO REPORT==== 21-Aug-2012::17:09:24 ===<br>Federation exchange &#39;skytap&#39; in vhost &#39;/&#39; connected to mq1:/:skytap<br><br>---<br>The management console for mq2 shows this on the Exchanges tab:<br><table class="list">
<tbody><tr class="alt1"><td><a href="http://mq2.mpietrek.internal.illumita.com:55672/#/exchanges/%2F/federation%3A%20skytap%20-%3E%20rabbit%40mq1.mpietrek.internal.illumita.com%20A">federation: skytap -&gt; rabbit@mq1.mpietrek.internal.illumita.com A</a></td>

   <td class="status c">x-federation-upstream</td>
   <td class="c"><acronym title="durable: true">D</acronym> <acronym title="auto-delete: true">AD</acronym> <acronym title="internal: true">I</acronym> <acronym title="x-max-hops: 1">Args</acronym></td>
   <td class="r"><br></td></tr></tbody></table><br>And mq3&#39;s Exchanges tab shows:<br><table class="list"><tbody><tr class="alt1"><td><a href="http://mq3.mpietrek.internal.illumita.com:55672/#/exchanges/%2F/federation%3A%20skytap%20-%3E%20rabbit%40mq1.mpietrek.internal.illumita.com%20B">federation: skytap -&gt; rabbit@mq1.mpietrek.internal.illumita.com B</a></td>

   <td class="status c">x-federation-upstream</td>
   <td class="c"><acronym title="durable: true">D</acronym> <acronym title="auto-delete: true">AD</acronym> <acronym title="internal: true">I</acronym> <acronym title="x-max-hops: 1">Args</acronym></td>
   <td class="r"><br></td></tr></tbody></table><br><br>Ideas on what I&#39;m doing wrong, or if this is a known issue?<br><br>Thanks,<br><br>Matt<br>