Skip to content
This repository has been archived by the owner on Apr 18, 2018. It is now read-only.

Failed connection attempts to call finish twice #8

Open
y-trobinso opened this issue Jun 5, 2013 · 1 comment
Open

Failed connection attempts to call finish twice #8

y-trobinso opened this issue Jun 5, 2013 · 1 comment

Comments

@y-trobinso
Copy link
Contributor

When failing a connection to /pushes after successfully logging in, it appears pushmanager attempted to call finish() twice:

HTTPRequest(protocol='https', host='myhost', method='GET', uri='/pushes', version='HTTP/1.1', remote_ip='myotherhost, body='', headers={'Accept-Language': 'en-US,en;q=0.$
Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/tornado-2.4.1-py2.6.egg/tornado/web.py", line 1021, in _stack_context_handle_exception
    raise_exc_info((type, value, traceback))
  File "/usr/local/lib/python2.6/dist-packages/tornado-2.4.1-py2.6.egg/tornado/stack_context.py", line 259, in _nested
    yield vars
  File "/usr/local/lib/python2.6/dist-packages/tornado-2.4.1-py2.6.egg/tornado/stack_context.py", line 229, in wrapped
    callback(*args, **kwargs)
  File "/usr/local/lib/python2.6/dist-packages/tornado-2.4.1-py2.6.egg/tornado/gen.py", line 383, in inner
    self.set_result(key, result)
  File "/usr/local/lib/python2.6/dist-packages/tornado-2.4.1-py2.6.egg/tornado/gen.py", line 315, in set_result
    self.run()
  File "/usr/local/lib/python2.6/dist-packages/tornado-2.4.1-py2.6.egg/tornado/gen.py", line 345, in run
    yielded = self.gen.send(next)
  File "/myuser/pushmanager/servlets/pushes.py", line 23, in get
    self.finish()
  File "/usr/local/lib/python2.6/dist-packages/tornado-2.4.1-py2.6.egg/tornado/web.py", line 686, in finish
    raise RuntimeError("finish() called twice.  May be caused "
RuntimeError: finish() called twice.  May be caused by using async operations without the @asynchronous decorator.
2013-06-05 16:07:34,440 [8283|MainThread] Cannot send error response after headers written

Steps to reproduce:

  1. Install pushmanager, tornado 2.x, and other dependencies.
  2. python pushmanager_main.py start.
  3. Attempt to log in. Immediately receive 500 error.
  4. This traceback will appear in the specified log file for pushmanager. The python processes themselves will continue to run.

myhost, myotherhost, and myuser stand in for my installation IP, my remote IP address, and my installation user, respectively.

@y-trobinso
Copy link
Contributor Author

This seems possibly related. Once I unwrapped the error, I discovered I was getting a standard HTTPError: HTTP 599: [Errno 111] Connection refused. This was because I wasn't running python pushmanager_api.py start ahead of time:

https://groups.google.com/forum/?fromgroups#!topic/python-tornado/rHCvGhXrBtY

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant