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>