[rabbitmq-discuss] A cluster on a single machine
Francesco Mazzoli
francesco at rabbitmq.com
Tue May 8 11:01:27 BST 2012
Hi David,
The problem is that you're not clustering the nodes in the correct
sequence, I think you missed my previous message:
http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2012-May/019883.html
Francesco.
On 08/05/12 10:58, David Fooks wrote:
> Right after a hint about using RABBITMQ_PID_FILE (without -detached) I
> now have four scripts. The first 3 are one line scripts run in separate
> tabs:
>
> RABBITMQ_NODE_PORT=5672
> RABBITMQ_PID_FILE="/var/run/rabbitmq/rabbit1.pid"
> RABBITMQ_NODENAME=rabbit1 RABBITMQ_SERVER_START_ARGS="-rabbitmq_mochiweb
> listeners [{mgmt,[{port,55672}]}]" rabbitmq-server
> RABBITMQ_NODE_PORT=5673
> RABBITMQ_PID_FILE="/var/run/rabbitmq/rabbit2.pid"
> RABBITMQ_NODENAME=rabbit2 RABBITMQ_SERVER_START_ARGS="-rabbitmq_mochiweb
> listeners [{mgmt,[{port,55673}]}]" rabbitmq-server
> RABBITMQ_NODE_PORT=5674
> RABBITMQ_PID_FILE="/var/run/rabbitmq/rabbit3.pid"
> RABBITMQ_NODENAME=rabbit3 RABBITMQ_SERVER_START_ARGS="-rabbitmq_mochiweb
> listeners [{mgmt,[{port,55674}]}]" rabbitmq-server
>
> Viewing the outputs of these shows that they all have the same cookie hash.
>
> I then run the following start up script:
>
> rabbitmqctl -n rabbit1 wait /var/run/rabbitmq/rabbit1.pid
> rabbitmqctl -n rabbit2 wait /var/run/rabbitmq/rabbit2.pid
> rabbitmqctl -n rabbit3 wait /var/run/rabbitmq/rabbit3.pid
>
> rabbitmqctl -n rabbit1 stop_app
> rabbitmqctl -n rabbit1 reset
> rabbitmqctl -n rabbit1 start_app
>
> rabbitmqctl -n rabbit2 stop_app
> rabbitmqctl -n rabbit2 reset
> rabbitmqctl -n rabbit2 start_app
>
> rabbitmqctl -n rabbit1 wait /var/run/rabbitmq/rabbit1.pid
> rabbitmqctl -n rabbit2 wait /var/run/rabbitmq/rabbit2.pid
>
> rabbitmqctl -n rabbit1 status
> rabbitmqctl -n rabbit2 status
>
> rabbitmqctl -n rabbit3 stop_app
> rabbitmqctl -n rabbit3 reset
> rabbitmqctl -n rabbit3 cluster rabbit1 at dfooks-ubuntu64
> rabbit2 at dfooks-ubuntu64
> rabbitmqctl -n rabbit3 start_app
>
> rabbitmqctl -n rabbit3 wait /var/run/rabbitmq/rabbit3.pid
>
> rabbitmqctl -n rabbit3 status
>
> But I'm still seeing the following error:
>
> Clustering node 'rabbit3 at dfooks-ubuntu64' with ['rabbit1 at dfooks-ubuntu64',
> 'rabbit2 at dfooks-ubuntu64'] ...
> Error: {unable_to_join_cluster,
> ['rabbit1 at dfooks-ubuntu64','rabbit2 at dfooks-ubuntu64'],
> {merge_schema_failed,
> "Incompatible schema cookies. Please, restart from old
> backup.'rabbit1 at dfooks-ubuntu64' =
> [{name,schema},{type,set},{ram_copies,[]},{disc_copies,['rabbit1 at dfooks-ubuntu64']},{disc_only_copies,[]},{load_order,0},{access_mode,read_write},{index,[]},{snmp,[]},{local_content,false},{record_name,schema},{attributes,[table,cstruct]},{user_properties,[]},{frag_properties,[]},{cookie,{{1336,470172,840474},'rabbit1 at dfooks-ubuntu64'}},{version,{{3,0},{'rabbit1 at dfooks-ubuntu64',{1336,470175,994704}}}}],
> 'rabbit3 at dfooks-ubuntu64' =
> [{name,schema},{type,set},{ram_copies,['rabbit3 at dfooks-ubuntu64']},{disc_copies,['rabbit2 at dfooks-ubuntu64']},{disc_only_copies,[]},{load_order,0},{access_mode,read_write},{index,[]},{snmp,[]},{local_content,false},{record_name,schema},{attributes,[table,cstruct]},{user_properties,[]},{frag_properties,[]},{cookie,{{1336,470173,940236},'rabbit2 at dfooks-ubuntu64'}},{version,{{3,0},{'rabbit3 at dfooks-ubuntu64',{1336,470176,11792}}}}]\n"}}
>
> So now I am resetting the node but I'm still seeing this issue. Any
> ideas? I might give up and use 2 VMs.
>
> On Friday, 4 May 2012 17:53:29 UTC+1, David Fooks wrote:
>
> Ok the above script is missing something:
>
> ...
> rabbitmqctl -n rabbit3 stop_app
> rabbitmqctl -n rabbit3 reset
> rabbitmqctl -n rabbit3 cluster rabbit1 at dfooks-ubuntu64
> rabbit2 at dfooks-ubuntu64
> rabbitmqctl -n rabbit3 start_app
>
> But this after this change I still get the error.
>
> On Friday, 4 May 2012 17:46:29 UTC+1, David Fooks wrote:
>
> Hi,
>
> I'm trying to emulate the guide here:
> http://www.rabbitmq.com/clustering.html
> <http://www.rabbitmq.com/clustering.html>
>
> But I'm having a lot of issues! Every time I run I seem to be
> getting a different crash. Is this feature actually supported in
> 2.8.1?
>
> Is there a proper way to completely reset all of the state that
> rabbitmq creates about other nodes/the cluster? My clean up
> script at the moment looks like this:
>
> rm /var/run/rabbitmq/*
> rm -f /var/log/rabbitmq/*
> rm -rf /var/lib/rabbitmq/*
>
> Here is my start-up script (I'm running this with sudo):
>
> RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit1
> RABBITMQ_SERVER_START_ARGS="-rabbitmq_mochiweb listeners
> [{mgmt,[{port,55672}]}]" rabbitmq-server -detached
> RABBITMQ_NODE_PORT=5673 RABBITMQ_NODENAME=rabbit2
> RABBITMQ_SERVER_START_ARGS="-rabbitmq_mochiweb listeners
> [{mgmt,[{port,55673}]}]" rabbitmq-server -detached
> RABBITMQ_NODE_PORT=5674 RABBITMQ_NODENAME=rabbit3
> RABBITMQ_SERVER_START_ARGS="-rabbitmq_mochiweb listeners
> [{mgmt,[{port,55674}]}]" rabbitmq-server -detached
>
> ps -ef | grep rabbit1 | grep -v grep | awk '{print $2}' >
> /var/run/rabbitmq/rabbit1.pid
> ps -ef | grep rabbit2 | grep -v grep | awk '{print $2}' >
> /var/run/rabbitmq/rabbit2.pid
> ps -ef | grep rabbit3 | grep -v grep | awk '{print $2}' >
> /var/run/rabbitmq/rabbit3.pid
>
> rabbitmqctl -n rabbit1 wait /var/run/rabbitmq/rabbit1.pid
> rabbitmqctl -n rabbit2 wait /var/run/rabbitmq/rabbit2.pid
> rabbitmqctl -n rabbit3 wait /var/run/rabbitmq/rabbit3.pid
>
> rabbitmqctl -n rabbit1 stop_app
> rabbitmqctl -n rabbit1 reset
> rabbitmqctl -n rabbit1 start_app
>
> rabbitmqctl -n rabbit2 stop_app
> rabbitmqctl -n rabbit2 reset
> rabbitmqctl -n rabbit2 start_app
>
> rabbitmqctl -n rabbit3 stop_app
> rabbitmqctl -n rabbit3 reset
> rabbitmqctl -n rabbit3 start_app
>
> rabbitmqctl -n rabbit1 status
> rabbitmqctl -n rabbit2 status
> rabbitmqctl -n rabbit3 status
>
> rabbitmqctl -n rabbit3 stop_app
> rabbitmqctl -n rabbit3 cluster rabbit1 at dfooks-ubuntu64
> rabbit2 at dfooks-ubuntu64
> rabbitmqctl -n rabbit3 start_app
>
> If I run the "clean" script and then this script I get the
> following warning (after all of the status returns ok):
>
> ...
> Stopping node 'rabbit3 at dfooks-ubuntu64' ...
> ...done.
> Clustering node 'rabbit3 at dfooks-ubuntu64' with
> ['rabbit1 at dfooks-ubuntu64',
> 'rabbit2 at dfooks-ubuntu64'] ...
> Error: {unable_to_join_cluster,
> ['rabbit1 at dfooks-ubuntu64','rabbit2 at dfooks-ubuntu64'],
> {merge_schema_failed,
> "Incompatible schema cookies. Please, restart from old
> backup.'rabbit1 at dfooks-ubuntu64' =
> [{name,schema},{type,set},{ram_copies,[]},{disc_copies,['rabbit1 at dfooks-ubuntu64']},{disc_only_copies,[]},{load_order,0},{access_mode,read_write},{index,[]},{snmp,[]},{local_content,false},{record_name,schema},{attributes,[table,cstruct]},{user_properties,[]},{frag_properties,[]},{cookie,{{1336,149567,596521},'rabbit1 at dfooks-ubuntu64'}},{version,{{3,0},{'rabbit1 at dfooks-ubuntu64',{1336,149572,870479}}}}],
> 'rabbit3 at dfooks-ubuntu64' =
> [{name,schema},{type,set},{ram_copies,['rabbit3 at dfooks-ubuntu64']},{disc_copies,['rabbit2 at dfooks-ubuntu64']},{disc_only_copies,[]},{load_order,0},{access_mode,read_write},{index,[]},{snmp,[]},{local_content,false},{record_name,schema},{attributes,[table,cstruct]},{user_properties,[]},{frag_properties,[]},{cookie,{{1336,149568,520459},'rabbit2 at dfooks-ubuntu64'}},{version,{{3,0},{'rabbit3 at dfooks-ubuntu64',{1336,149572,882518}}}}]\n"}}
> Starting node 'rabbit3 at dfooks-ubuntu64' ...
> Error: {cannot_start_application,rabbitmq_management,
> {bad_return,
> {{rabbit_mgmt_app,start,[normal,[]]},
> {'EXIT',
> {shutdown,
> {gen_server2,call,
> [<4885.932.0>,{init,<4885.930.0>},infinity]}}}}}}
>
> I've read about this error in other threads but it generally
> seems to be about network settings being reconfigured between
> nodes. I shouldn't have these problems since each instance is on
> the same machine.
>
>
>
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
More information about the rabbitmq-discuss
mailing list