Search code examples
pythonpython-2.7rabbitmqamqpkombu

Could not connect to RabbitMQ from Python


I'm learning Python and I run into weird issue. I'm running RabitMQ on my macOS Sierra local box. Connecting to RabbitMQ server from python script always fails with socket timeout error. At same time I'm able to connect through the telnet. Running Python 2.7 and library kombu:

# test.py
from kombu import Connection

connection = Connection('amqp://127.0.0.1')
connection.connect()

The result:

Thunderstorm:test max$ python test.py
Traceback (most recent call last):
  File "test.py", line 6, in <module>
    connection.connect()
  File "/Library/Python/2.7/site-packages/kombu/connection.py", line 261, in connect
    return self.connection
  File "/Library/Python/2.7/site-packages/kombu/connection.py", line 802, in connection
    self._connection = self._establish_connection()
  File "/Library/Python/2.7/site-packages/kombu/connection.py", line 757, in _establish_connection
    conn = self.transport.establish_connection()
  File "/Library/Python/2.7/site-packages/kombu/transport/pyamqp.py", line 130, in establish_connection
    conn.connect()
  File "/Library/Python/2.7/site-packages/amqp/connection.py", line 300, in connect
    self.drain_events(timeout=self.connect_timeout)
  File "/Library/Python/2.7/site-packages/amqp/connection.py", line 464, in drain_events
    return self.blocking_read(timeout)
  File "/Library/Python/2.7/site-packages/amqp/connection.py", line 468, in blocking_read
    frame = self.transport.read_frame()
  File "/Library/Python/2.7/site-packages/amqp/transport.py", line 237, in read_frame
    frame_header = read(7, True)
  File "/Library/Python/2.7/site-packages/amqp/transport.py", line 377, in _read
    s = recv(n - len(rbuf))
socket.timeout: timed out

It takes few seconds and returns timeout. At this moment in RabbitMq logs I'm seeing:

=INFO REPORT==== 1-Mar-2017::12:25:00 ===
accepting AMQP connection <0.23773.4> (127.0.0.1:60600 -> 127.0.0.1:5672)

=WARNING REPORT==== 1-Mar-2017::12:25:08 ===
closing AMQP connection <0.23773.4> (127.0.0.1:60600 -> 127.0.0.1:5672):
client unexpectedly closed TCP connection

Firewall is turned off. Telnet connection success:

Thunderstorm:test max$ telnet 127.0.0.1 5672
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

How can I debug this issue?


Solution

  • This issue resolved by increasing default connect timeout

    Connection('amqp://127.0.0.1/', connect_timeout=15)