circus-tent/circus-web

Does not work on circus==0.11.1, circus-web==0.5, tornado==4.2 because of wrong param for default value on get_arguments()

Opened this issue ยท 22 comments

Does not work on circus==0.11.1, circus-web==0.5, tornado==4.2 because of wrong param for default value on get_arguments()

This is occurring due to this change in tornado:

tornadoweb/tornado@917c9ca

Along with a specific version not specified in requirements.txt for this package. In the main circus package, tornado is specified as tornado>=3.0.

For context, the error happens after you load the initial circus-web screen, then hit connect. It yields this exception:

2015-06-09 23:46:58 tornado.application[6876] [ERROR] Uncaught exception POST /connect/ (10.0.2.2)
HTTPServerRequest(protocol='http', host='localhost:8115', method='POST', uri='/connect/', version='HTTP/1.1', r                                                   emote_ip='10.0.2.2', headers={'Origin': 'http://localhost:8115', 'Content-Length': '44', 'Accept-Language': 'en                                                   -US,en;q=0.8', 'Accept-Encoding': 'gzip, deflate', 'Host': 'localhost:8115', 'Accept': 'text/html,application/x                                                   html+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleW                                                   ebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36', 'Dnt': '1', 'Connection': 'keep-alive', 'R                                                   eferer': 'http://localhost:8115/connect/', 'Cache-Control': 'max-age=0', 'Cookie': 'fossil-13fcd6fcdf47aa1c=FE5                                                   2021EB1EE99F24CE1EDED507223DA02A49627A1863AAD19%2F13fcd6fcdf47aa1c%2FDaniel; session_id="2|1:0|10:1433893614|10                                                   :session_id|44:Yzc1NWQ2OGQyNmQxNGY4NmEzNzQ5NWRhNmYxYzQ2ZjM=|31fd3477a5ffc7eef98820a60465deed84d7b3ace39714fdfa7                                                   8c9f13a18ba19"', 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': 'Basic dXNlcjoxMjM='})
Traceback (most recent call last):
  File "/home/vagrant/.virtualenvs/circus/local/lib/python2.7/site-packages/tornado/web.py", line 1369, in _sta                                                   ck_context_handle_exception
    raise_exc_info((type, value, traceback))
  File "/home/vagrant/.virtualenvs/circus/local/lib/python2.7/site-packages/tornado/stack_context.py", line 314                                                   , in wrapped
    ret = fn(*args, **kwargs)
  File "/home/vagrant/.virtualenvs/circus/local/lib/python2.7/site-packages/tornado/web.py", line 1581, in futu                                                   re_complete
    f.result()
  File "/home/vagrant/.virtualenvs/circus/local/lib/python2.7/site-packages/tornado/concurrent.py", line 215, i                                                   n result
    raise_exc_info(self._exc_info)
  File "/home/vagrant/.virtualenvs/circus/local/lib/python2.7/site-packages/tornado/gen.py", line 230, in wrapp                                                   er
    yielded = next(result)
  File "/home/vagrant/.virtualenvs/circus/local/lib/python2.7/site-packages/circusweb/circushttpd.py", line 162                                                   , in post
    endpoints = self.get_arguments('endpoint_list', [])
  File "/home/vagrant/.virtualenvs/circus/local/lib/python2.7/site-packages/tornado/web.py", line 398, in get_a                                                   rguments
    assert isinstance(strip, bool)
AssertionError
2015-06-09 23:46:58 tornado.access[6876] [ERROR] 500 POST /connect/ (10.0.2.2) 5.91ms

Since I'm not familiar with this codebase nor Tornado, I just force installed tornado==3.2 (the current version at the time of this last release in 2014) and called it a day rather than trying to fix myself.

pip uninstall tornado
pip install tornado==3.2
jemc commented

Just ran into this one as well when trying circus-web for the first time.
Installing the older version of tornado worked for me, but I subscribed to the issue ticket so I'll know when this is fixed.

Natim commented

It is strange since I released circus-web few days ago. Can you tell me which version of circus and circusweb you are using?

jemc commented
circus (0.12.0)
circus-web (1.0.0)

Same here. Fresh install in an empty virtualenv, circus==0.12.0, circus-web==1.0.0. It's obviously triggered by tornadoweb/tornado@917c9ca and the workaround is to install tornado==3.2 as noted above.

I am using tornado==3.2 but still facing same error as above:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1369, in         _stack_context_handle_exception
    raise_exc_info((type, value, traceback))
  File "/usr/local/lib/python2.7/dist-packages/tornado/stack_context.py", line 314, in wrapped
    ret = fn(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1581, in future_complete
f.result()
  File "/usr/local/lib/python2.7/dist-packages/tornado/concurrent.py", line 215, in result
    raise_exc_info(self._exc_info)
  File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 230, in wrapper
    yielded = next(result)
  File "/usr/local/lib/python2.7/dist-packages/circusweb/circushttpd.py", line 164, in post
    endpoints = self.get_arguments('endpoint_list', [])
  File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 398, in get_arguments
    assert isinstance(strip, bool)
AssertionError

Confirmed the issue still exists. Pinning to tornado==3.2 seems to work for me.

jippi commented

bump

Issue still exists. Installing tornado==3.2 fixed it.
circus (0.12.1)
circus-web (1.0.0)

circus 0.13.1, circus-web 1.0.0 same issue

I'm using circus, version 0.14.0, circus-web, version 1.0.0 and chaussette, version 1.3.0 .
I'm following this https://circus.readthedocs.io/en/0.9.2/examples/#examples tutorial. But when I tried running bin/circusd --daemon circus.ini and try to access localhost:8080/connect/ it raise error. I switched my tornado version to 3.2 and still its giving error. Logs are given below.
Traceback (most recent call last): File "/Users/Ankur/development/tmpCircus/lib/python2.7/site-packages/tornado/web.py", line 1425, in _stack_context_handle_exception raise_exc_info((type, value, traceback)) File "/Users/Ankur/development/tmpCircus/lib/python2.7/site-packages/tornado/stack_context.py", line 314, in wrapped ret = fn(*args, **kwargs) File "/Users/Ankur/development/tmpCircus/lib/python2.7/site-packages/tornado/web.py", line 1638, in future_complete f.result() File "/Users/Ankur/development/tmpCircus/lib/python2.7/site-packages/tornado/concurrent.py", line 237, in result raise_exc_info(self._exc_info) File "/Users/Ankur/development/tmpCircus/lib/python2.7/site-packages/tornado/gen.py", line 285, in wrapper yielded = next(result) File "/Users/Ankur/development/tmpCircus/lib/python2.7/site-packages/circusweb/circushttpd.py", line 164, in post endpoints = self.get_arguments('endpoint_list', []) File "/Users/Ankur/development/tmpCircus/lib/python2.7/site-packages/tornado/web.py", line 412, in get_arguments assert isinstance(strip, bool) AssertionError

Just bumped into this exact same issue...

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1425, in _stack_context_handle_exception
    raise_exc_info((type, value, traceback))
  File "/usr/local/lib/python2.7/dist-packages/tornado/stack_context.py", line 314, in wrapped
    ret = fn(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 1638, in future_complete
    f.result()
  File "/usr/local/lib/python2.7/dist-packages/tornado/concurrent.py", line 237, in result
    raise_exc_info(self._exc_info)
  File "/usr/local/lib/python2.7/dist-packages/tornado/gen.py", line 285, in wrapper
    yielded = next(result)
  File "/usr/local/lib/python2.7/dist-packages/circusweb/circushttpd.py", line 164, in post
    endpoints = self.get_arguments('endpoint_list', [])
  File "/usr/local/lib/python2.7/dist-packages/tornado/web.py", line 412, in get_arguments
    assert isinstance(strip, bool)
AssertionError
# pip freeze | egrep 'tornado|circus'
circus==0.14.0
circus-web==1.0.0
tornado==4.4.2

FYI: e824d1a is still a cure.

Apparently this fix somehow couldn't find its way to pip.

bumped into this exact same issue:
Traceback (most recent call last): File "/home/feng/anaconda2/lib/python2.7/site-packages/tornado/web.py", line 1467, in _stack_context_handle_exception raise_exc_info((type, value, traceback)) File "/home/feng/anaconda2/lib/python2.7/site-packages/tornado/stack_context.py", line 316, in wrapped ret = fn(*args, **kwargs) File "/home/feng/anaconda2/lib/python2.7/site-packages/tornado/web.py", line 1680, in future_complete f.result() File "/home/feng/anaconda2/lib/python2.7/site-packages/tornado/concurrent.py", line 238, in result raise_exc_info(self._exc_info) File "/home/feng/anaconda2/lib/python2.7/site-packages/tornado/gen.py", line 307, in wrapper yielded = next(result) File "/home/feng/anaconda2/lib/python2.7/site-packages/circusweb/circushttpd.py", line 164, in post endpoints = self.get_arguments('endpoint_list', []) File "/home/feng/anaconda2/lib/python2.7/site-packages/tornado/web.py", line 417, in get_arguments assert isinstance(strip, bool) AssertionError
circus (0.14.0)
circus-web (1.0.0)
tornado (4.5.1)

Natim commented

If one of you wants to file a pull-request I will be happy to merge it and make a new release.

@Natim The fix is already present in e824d1a.

I believe people keep bumping into this because the fix was not included into the pip release (not sure if it's still a valid point to this day).

@Natim I believe @narunask is exactly correct. Just making a pip release should work.

It's definitely valid today - I installed both circus and circus-web for the first time today and ran into this problem.

@waynew they haven't made a new release of circus-web.

$ pip freeze | egrep 'tornado|circus'
circus==0.15.0
circus-web==1.0.0
tornado==4.5.3

now is 2018-08-21, this issue still exist.

2018-09-01, same issue still exist.
`

pip freeze | egrep 'tornado|circus'
circus==0.15.0
circus-web==1.0.0
tornado==4.5.3`

pinning to tornado==3.2.2 is solving this. but the issue still exists.

Same here. Fresh install in an empty virtualenv, circus==0.12.0, circus-web==1.0.0. It's obviously triggered by tornadoweb/tornado@917c9ca and the workaround is to install tornado==3.2 as noted above.

circus==0.12.0, circus-web==1.0.0, tornado==3.2.2 have already solved my problems. Thanks.