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
This is occurring due to this change in tornado:
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
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.
It is strange since I released circus-web few days ago. Can you tell me which version of circus and circusweb you are using?
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.
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)
If one of you wants to file a pull-request I will be happy to merge it and make a new release.
@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.