slimta / python-slimta-cloudstorage

Adds a queue storage backend interfacing with common service providers.
MIT License
1 stars 0 forks source link

<Greenlet at .... <bound method Queue._dequeue of <Queue at ...>>(<Key: slimta-queue,....)> failed with Timeout #2

Open rgcarrasqueira opened 10 years ago

rgcarrasqueira commented 10 years ago

Hi Ian,

Now I´m using the cloudstorage and it is great, It is possible to scale my process as I want, but I´m having a issue about Timeout again with Gevent, as described bellow, can you give us a clue on how to solve this?

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/gevent/greenlet.py", line 327, in run
    result = self._run(*self.args, **self.kwargs)
  File "/home/web_app/sender/src/slimta/slimta/queue/__init__.py", line 347, in _dequeue
    envelope, attempts = self.store.get(id)
  File "/home/web_app/sender/src/slimta-cloudstorage/slimta/cloudstorage/__init__.py", line 101, in get
    envelope, timestamp, attempts = self.obj_store.get_message(id)
  File "/home/web_app/sender/src/slimta-cloudstorage/slimta/cloudstorage/aws.py", line 132, in get_message
    envelope_raw = key.get_contents_as_string()
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 1696, in get_contents_as_string
    response_headers=response_headers)
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 1585, in get_contents_to_file
    response_headers=response_headers)
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 1425, in get_file
    query_args=None)
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 1457, in _get_file_internal
    override_num_retries=override_num_retries)
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 323, in open
    override_num_retries=override_num_retries)
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 268, in open_read
    override_num_retries=override_num_retries)
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py", line 550, in make_request
    retry_handler=retry_handler
  File "/usr/local/lib/python2.7/dist-packages/boto/connection.py", line 1021, in make_request
    retry_handler=retry_handler)
  File "/usr/local/lib/python2.7/dist-packages/boto/connection.py", line 901, in _mexe
    request.body, request.headers)
  File "/usr/lib/python2.7/httplib.py", line 973, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib/python2.7/httplib.py", line 1007, in _send_request
    self.endheaders(body)
  File "/usr/lib/python2.7/httplib.py", line 969, in endheaders
    self._send_output(message_body)
  File "/usr/lib/python2.7/httplib.py", line 829, in _send_output
    self.send(msg)
  File "/usr/lib/python2.7/httplib.py", line 791, in send
    self.connect()
  File "/usr/lib/python2.7/httplib.py", line 1176, in connect
    self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file)
  File "/usr/local/lib/python2.7/dist-packages/gevent/ssl.py", line 383, in wrap_socket
    ciphers=ciphers)
  File "/usr/local/lib/python2.7/dist-packages/gevent/ssl.py", line 94, in __init__
    self.do_handshake()
  File "/usr/local/lib/python2.7/dist-packages/gevent/ssl.py", line 312, in do_handshake
    self._wait(self._read_event, timeout_exc=_SSLErrorHandshakeTimeout)
  File "/usr/local/lib/python2.7/dist-packages/gevent/socket.py", line 298, in _wait
    self.hub.wait(watcher)
  File "/usr/local/lib/python2.7/dist-packages/gevent/hub.py", line 341, in wait
    result = waiter.get()
  File "/usr/local/lib/python2.7/dist-packages/gevent/hub.py", line 568, in get
    return self.hub.switch()
  File "/usr/local/lib/python2.7/dist-packages/gevent/hub.py", line 331, in switch
    return greenlet.switch(self)
Timeout: 10 seconds
<Greenlet at 0x4f07e10: <bound method Queue._dequeue of <Queue at 0x3096c30>>(<Key: production-slimta-queue,6c600dab-c322-42a6-b)> failed with Timeout

Thanks so much!

Rogério Carrasqueira

rgcarrasqueira commented 10 years ago

Just an additional information:

I´m using the cloudstorage extension running many instances consuming the same bucket and the same queue. I just wondering how can I scale the sending using many process.

Thanks so much!