[rabbitmq-discuss] RabbitMQ hangs, does not accept connections
Alvaro Videla
videlalvaro at gmail.com
Thu Dec 22 06:55:28 GMT 2011
Hi,
A small note,
When connecting to a remote Erlang node, in this case the the rabbit node, you have to choose a different node name.
For example:
erl -sname foo
Once you are on the Erlang REPL then you can try to remotely connect to the rabbit node using net_adm:ping
-Alvaro.
Sent from my iFad
On Dec 22, 2011, at 7:32 AM, Dmitri Minaev <minaev at gmail.com> wrote:
> Now, I have a hanging Rabbit available for the autopsy.
>
> Running processes (ps ax|grep rabbit):
>
> -------------
> 29699 ? Ss 0:00 sh -c
> RABBITMQ_PID_FILE=/var/run/rabbitmq/pid /usr/sbin/rabbitmq-server >
> /var/log/rabbitmq/startup_log 2>
> /var/log/rabbitmq/startup_err
> 29702 ? S 0:00 /bin/sh /usr/sbin/rabbitmq-server
> 29708 ? S 0:00 su rabbitmq -s /bin/sh -c
> /usr/lib/rabbitmq/bin/rabbitmq-server
> 29710 ? S 0:00 sh -c /usr/lib/rabbitmq/bin/rabbitmq-server
> 29711 ? Sl 4715:59 /usr/lib/erlang/erts-5.7.4/bin/beam.smp -W
> w -K true -A30 -P 1048576 -- -root /usr/lib/erlang -progname erl --
> -home /var/lib/rabbitmq -- -noshell -noinput -sname rabbit at dbx
> -setcookie riak -boot
> /var/lib/rabbitmq/mnesia/rabbit at dbx-plugins-expand/rabbit -config
> /etc/rabbitmq/rabbitmq -kernel inet_default_connect_options
> [{nodelay,true}] -rabbit tcp_listeners [{"0.0.0.0",5672}] -sasl
> errlog_type error -kernel error_logger
> {file,"/var/log/rabbitmq/rabbit at dbx.log"} -sasl sasl_error_logger
> {file,"/var/log/rabbitmq/rabbit at dbx-sasl.log"} -os_mon start_cpu_sup
> true -os_mon start_disksup false -os_mon start_memsup false -mnesia
> dir "/var/lib/rabbitmq/mnesia/rabbit at dbx"
> -------------
>
> Network sockets are available:
> $ sudo netstat -tunlp|grep beam
> tcp 0 0 0.0.0.0:5672 0.0.0.0:*
> LISTEN 29711/beam.smp
> tcp 0 0 0.0.0.0:60040 0.0.0.0:*
> LISTEN 29711/beam.smp
>
> $ cat /etc/rabbitmq/rabbitmq.config
> [{rabbit, [{vm_memory_high_watermark, 0.7}]},
> {rabbit, [{tcp_listeners, [{"0.0.0.0", 5672}]}]}].
>
> $ cat /etc/rabbitmq/rabbitmq-env.conf
> RABBITMQ_NODE_IP_ADDRESS=0.0.0.0
>
> strace -p 29711 shows that the process is waiting in select():
> select(0, NULL, NULL, NULL, NULL
>
>
> Last lines in rabbit at dbx.log:
> ---------------------------
> =WARNING REPORT==== 22-Dec-2011::09:55:44 ===
> exception on TCP connection <0.367.0> from x.x.x.26:43157
> connection_closed_abruptly
>
> =INFO REPORT==== 22-Dec-2011::09:55:44 ===
> closing TCP connection <0.367.0> from x.x.x..26:43157
>
> =WARNING REPORT==== 22-Dec-2011::09:55:44 ===
> exception on TCP connection <0.379.0> from x.x.x.26:43160
> connection_closed_abruptly
>
> =INFO REPORT==== 22-Dec-2011::09:55:44 ===
> closing TCP connection <0.379.0> from x.x.x.26:43160
>
> =WARNING REPORT==== 22-Dec-2011::09:55:44 ===
> exception on TCP connection <0.335.0> from x.x.x.26:43154
> connection_closed_abruptly
>
> =INFO REPORT==== 22-Dec-2011::09:55:44 ===
> closing TCP connection <0.335.0> from x.x.x.26:43154
>
> =WARNING REPORT==== 22-Dec-2011::09:55:44 ===
> exception on TCP connection <0.467.0> from x.x.x.26:43166
> connection_closed_abruptly
>
> =INFO REPORT==== 22-Dec-2011::09:55:44 ===
> closing TCP connection <0.467.0> from x.x.x.26:43166
> ---------------------------
>
> PHP clients cannot connect to RabbitMQ. When I run my test Python
> script which uses amqplib.client_0_8, it hangs on
> amqp.Connection(host, "guest", "guest", ssl=False)
>
> strace shows the following:
>
> connect(3, {sa_family=AF_INET, sin_port=htons(5672),
> sin_addr=inet_addr("127.0.0.1")}, 16) = 0
> fcntl(3, F_GETFL) = 0x2 (flags O_RDWR)
> fcntl(3, F_SETFL, O_RDWR) = 0
> sendto(3, "AMQP\1\1\t\1", 8, 0, NULL, 0) = 8
> brk(0x1461000) = 0x1461000
> recvfrom(3,
>
> Now, I try to connect to the RabbitMQ node using 'erl':
> $ erl -sname 'rabbit at dbx'
> {error_logger,{{2011,12,22},{10,26,33}},"Protocol: ~p: register error:
> ~p~n",["inet_tcp",{{badmatch,{error,duplicate_name}},[{inet_tcp_dist,listen,1},{net_kernel,start_protos,4},{net_kernel,start_protos,3},{net_kernel,init_node,2},{net_kernel,init,1},{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}]}
> {error_logger,{{2011,12,22},{10,26,33}},crash_report,[[{initial_call,{net_kernel,init,['Argument__1']}},{pid,<0.21.0>},{registered_name,[]},{error_info,{exit,{error,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{ancestors,[net_sup,kernel_sup,<0.9.0>]},{messages,[]},{links,[#Port<0.68>,<0.18.0>]},{dictionary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,377},{stack_size,24},{reductions,442}],[]]}
> {error_logger,{{2011,12,22},{10,26,33}},supervisor_report,[{supervisor,{local,net_sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{pid,undefined},{name,net_kernel},{mfa,{net_kernel,start_link,[['rabbit at dbx',shortnames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]}
> {error_logger,{{2011,12,22},{10,26,33}},supervisor_report,[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined},{name,net_sup},{mfa,{erl_distribution,start_link,[]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]}
> {error_logger,{{2011,12,22},{10,26,33}},std_info,[{application,kernel},{exited,{shutdown,{kernel,start,[normal,[]]}}},{type,permanent}]}
> {"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}}"}
>
> Crash dump was written to: erl_crash.dump
> Kernel pid terminated (application_controller)
> ({application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}})
>
> Is there any other information that might be useful?
>
> On 13 December 2011 18:26, Dmitri Minaev <minaev at gmail.com> wrote:
>> Thank you for the reply. Yes, TCP connection could be established, but
>> not AMQP. We generally use PHP library, but I also tested RabbitMQ
>> using Python amqplib. In both cases, the client side cannot get the
>> connection.
>>
>> Besides the common information messages (starting/closing TCP
>> connection), there's only one type of messages in the log files:
>>
>> =WARNING REPORT==== 13-Dec-2011::16:56:51 ===
>> exception on TCP connection <0.14474.173> from x.x.x.x:xxx
>> connection_closed_abruptly
>>
>> But then, again, these messages may be found even during normal
>> operation, this is why I don't think they're relevant.
>>
>>
>> On 13 December 2011 14:42, Simon MacMullen <simon at rabbitmq.com> wrote:
>>> Hmm. I can't really say anything from your description - can you post the
>>> logs somewhere? It's possible that your definition of "nothing unusual in
>>> the logs" differs from mine.
>>>
>>> And when you say that "the server refused attempts to connect", what exactly
>>> do you mean. You say that a TCP connection *could* be established - so does
>>> your client hang during AMQP handshaking? Disconnect? Something else?
>>>
>>> Cheers, Simon
>>>
>>>
>>> On 12/12/11 16:24, Dmitri Minaev wrote:
>>>>
>>>> Hello,
>>>>
>>>> We use RabbitMQ for about a year now. From time to time I upgraded it
>>>> and switched from one server to another. About a month ago the last
>>>> such transition took place. I installed new RabbitMQ (2.7) on a new
>>>> server and our web application was reconfigured. Quite soon we faced
>>>> new problems. After some days of stable work clients could not connect
>>>> to RabbitMQ. I could list run rabbitmqctl, list queues, kill
>>>> connections, but the server refused attempts to connect. That is, TCP
>>>> socket was available and telnet could connect to port 5672, but the
>>>> AMQP connection could not be established. There was nothing unusual in
>>>> the logs. vm_memory_high_watermark is set to 0.7 and there's still
>>>> plenty of free memory.
>>>>
>>>> After a couple of such failures I tried to downgrade to 2.6.1, but the
>>>> problem remained. The last time I disabled IPv6, but today we hit the
>>>> same trouble again.
>>>>
>>>> I think I must have done something wrong when setting up the
>>>> environment, but what could that be?
>>>>
>>>> OS: Ubuntu 10.04 LTS.
>>>> 16GB RAM.
>>>> RabbitMQ 2.6.1
>>>> Erlang R13B03 (erts-5.7.4) (package erlang-nox from Ubuntu repository)
>>>> Client: php-amqplib
>>>>
>>>
>>>
>>> --
>>> Simon MacMullen
>>> RabbitMQ, VMware
>>> _______________________________________________
>>> rabbitmq-discuss mailing list
>>> rabbitmq-discuss at lists.rabbitmq.com
>>> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>>
>>
>>
>> --
>> With best regards,
>> Dmitri Minaev
>
>
>
> --
> With best regards,
> Dmitri Minaev
> _______________________________________________
> 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