circus-tent/circus-web

deactivating broken

Closed this issue · 8 comments

Hi,

trying to deactivate a worker gives the exception below. In this case it's a singleton, if that matters (I couldn't test a non-singleton):

Traceback (most recent call last):
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/web.py", line 1115, in _stack_context_handle_exception
    raise_exc_info((type, value, traceback))
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/stack_context.py", line 302, in wrapped
    ret = fn(*args, **kwargs)
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/web.py", line 1307, in future_complete
    f.result()
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/concurrent.py", line 129, in result
    raise_exc_info(self.__exc_info)
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/gen.py", line 200, in handle_exception
    if runner is not None and runner.handle_exception(typ, value, tb):
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/gen.py", line 556, in handle_exception
    self.run()
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/gen.py", line 505, in run
    yielded = self.gen.throw(*exc_info)
  File "/media/ssd/graunt/graunt/extern/circus-web/circusweb/circushttpd.py", line 229, in get
    redirect_url=self.reverse_url('index'))
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/stack_context.py", line 302, in wrapped
    ret = fn(*args, **kwargs)
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/gen.py", line 196, in <lambda>
    future, lambda future: callback(future.result()))
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/concurrent.py", line 129, in result
    raise_exc_info(self.__exc_info)
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/gen.py", line 200, in handle_exception
    if runner is not None and runner.handle_exception(typ, value, tb):
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/gen.py", line 556, in handle_exception
    self.run()
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/gen.py", line 505, in run
    yielded = self.gen.throw(*exc_info)
  File "/media/ssd/graunt/graunt/extern/circus-web/circusweb/util.py", line 33, in run_command
    res = yield gen.Task(command, *args, **kwargs)
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/stack_context.py", line 302, in wrapped
    ret = fn(*args, **kwargs)
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/gen.py", line 196, in <lambda>
    future, lambda future: callback(future.result()))
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/concurrent.py", line 129, in result
    raise_exc_info(self.__exc_info)
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/stack_context.py", line 302, in wrapped
    ret = fn(*args, **kwargs)
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/gen.py", line 550, in inner
    self.set_result(key, result)
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/gen.py", line 476, in set_result
    self.run()
  File "/media/ssd/graunt/graunt/target/local/lib/python2.7/site-packages/tornado/gen.py", line 507, in run
    yielded = self.gen.send(next)
  File "/media/ssd/graunt/graunt/extern/circus-web/circusweb/controller.py", line 146, in switch_status
    res = yield gen.Task(self.client.call, msg)
AttributeError: 'Controller' object has no attribute 'client'

what is your circus-web version ?

Ah, yes, sorry. circus-web is 913e0bb
while circus is circus-tent/circus@5f0bf84

I am closing for now, feel free to reopen if you have the bug with circus-web 0.5 and circus 0.11

I dislike old bug reports as much as everybody, but that's not really the way forward. And yes, I just spent an hour upgrading to circus-web 0.5 and circus 0.1, and debugging all the new bugs (stay tuned), and sure enough: You click the checkbox, you get the exception.

2014-05-22 04:07:45 tornado.application[20224] [ERROR] Uncaught exception GET /dGNwOi8vMTI3LjAuMC4xOjU1NTU%3D/watcher/bucky_demo/switch_status/ (127.0.0.1)
HTTPRequest(protocol='http', host='localhost:8010', method='GET', uri='/dGNwOi8vMTI3LjAuMC4xOjU1NTU%3D/watcher/bucky_demo/switch_status/', version='HTTP/1.1', remote_ip='127.0.0.1', headers={'Accept-Language': 'de,en-us;q=0.7,en;q=0.3', 'Accept-Encoding': 'gzip, deflate', 'Host': 'localhost:8010', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0', 'Dnt': '1', 'Connection': 'keep-alive', 'Referer': 'http://localhost:8010/', 'Cookie': 'session_id="2|1:0|10:1400724430|10:session_id|44:ZWNlMjAxNTA3N2VlNDg3MDk2NTRhYTE5YzMzMTQwODk=|e65b41b1bcaba323b73344f2c37d33a2eeeb8bfeb33d17f1a882959c40f19308"'})
Traceback (most recent call last):
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/web.py", line 1244, in _stack_context_handle_exception
    raise_exc_info((type, value, traceback))
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/stack_context.py", line 302, in wrapped
    ret = fn(*args, **kwargs)
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/web.py", line 1436, in future_complete
    f.result()
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/concurrent.py", line 129, in result
    raise_exc_info(self.__exc_info)
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/gen.py", line 206, in handle_exception
    if runner is not None and runner.handle_exception(typ, value, tb):
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/gen.py", line 580, in handle_exception
    self.run()
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/gen.py", line 529, in run
    yielded = self.gen.throw(*exc_info)
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/circusweb/circushttpd.py", line 240, in get
    redirect_url=self.reverse_url('index'))
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/stack_context.py", line 302, in wrapped
    ret = fn(*args, **kwargs)
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/gen.py", line 202, in <lambda>
    future, lambda future: callback(future.result()))
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/concurrent.py", line 129, in result
    raise_exc_info(self.__exc_info)
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/gen.py", line 206, in handle_exception
    if runner is not None and runner.handle_exception(typ, value, tb):
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/gen.py", line 580, in handle_exception
    self.run()
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/gen.py", line 529, in run
    yielded = self.gen.throw(*exc_info)
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/circusweb/util.py", line 33, in run_command
    res = yield gen.Task(command, *args, **kwargs)
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/stack_context.py", line 302, in wrapped
    ret = fn(*args, **kwargs)
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/gen.py", line 202, in <lambda>
    future, lambda future: callback(future.result()))
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/concurrent.py", line 129, in result
    raise_exc_info(self.__exc_info)
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/stack_context.py", line 302, in wrapped
    ret = fn(*args, **kwargs)
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/gen.py", line 574, in inner
    self.set_result(key, result)
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/gen.py", line 500, in set_result
    self.run()
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/tornado/gen.py", line 531, in run
    yielded = self.gen.send(next)
  File "/home/marcus/semantics/projects/graunt/graunt-freimann/target/lib/python2.7/site-packages/circusweb/controller.py", line 143, in switch_status
    res = yield gen.Task(self.client.call, msg)
AttributeError: 'Controller' object has no attribute 'client'
2014-05-22 04:07:45 tornado.access[20224] [ERROR] 500 GET /dGNwOi8vMTI3LjAuMC4xOjU1NTU%3D/watcher/bucky_demo/switch_status/ (127.0.0.1) 2.83ms

I don't have authority to reopen this - github allows this for non-project-members only if they closed their own report themselves.

Ok I fixed the problem with 8601438 can you give it a try and tell me if it is ok for you?

Yep, that works now, thanks!

could you make a new release with this bugfix?