[
https://issues.apache.org/jira/browse/AURORA-1561?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15057171#comment-15057171
]
Joshua Cohen commented on AURORA-1561:
--------------------------------------
Given our long term goal of removing the Observer entirely in favor of
integrating the task UI into the scheduler, I suspect we won't get to this, but
good to track nonetheless.
> Observer log browser throws exception when given a path not matching expected
> pattern
> -------------------------------------------------------------------------------------
>
> Key: AURORA-1561
> URL: https://issues.apache.org/jira/browse/AURORA-1561
> Project: Aurora
> Issue Type: Bug
> Components: Observer
> Reporter: Joshua Cohen
> Priority: Trivial
>
> E.g. trying to access
> {{http://192.168.33.7:1338/logs/1450144103372-vagrant-test-http_example_docker-0-aaaf5e1a-f9eb-450c-8750-4d0376a322fb/foo/bar/baz}}
> fails with the following exception:
> {noformat}
> Traceback (most recent call last):
> File
> "/root/.pex/install/bottle-0.11.6-py2.py3-none-any.whl.e1e7f36ef104f01896f13c85c9899f9d3d0a8813/bottle-0.11.6-py2.py3-none-any.whl/bottle.py",
> line 764, in _handle
> return route.call(**args)
> File
> "/root/.pex/install/bottle-0.11.6-py2.py3-none-any.whl.e1e7f36ef104f01896f13c85c9899f9d3d0a8813/bottle-0.11.6-py2.py3-none-any.whl/bottle.py",
> line 1575, in wrapper
> rv = callback(*a, **ka)
> File
> "/root/.pex/install/bottle-0.11.6-py2.py3-none-any.whl.e1e7f36ef104f01896f13c85c9899f9d3d0a8813/bottle-0.11.6-py2.py3-none-any.whl/bottle.py",
> line 3138, in wrapper
> result = func(*args, **kwargs)
> File
> "/root/.pex/install/bottle-0.11.6-py2.py3-none-any.whl.e1e7f36ef104f01896f13c85c9899f9d3d0a8813/bottle-0.11.6-py2.py3-none-any.whl/bottle.py",
> line 3138, in wrapper
> result = func(*args, **kwargs)
> File "apache/thermos/observer/http/file_browser.py", line 76, in handle_logs
> types = self._observer.logs(task_id, process, int(run))
> ValueError: invalid literal for int() with base 10: 'bar'
> {noformat}
> It's trying to interpret 'bar' as a run id, and dying when it cannot do so.
> Similar failures can be generated for other parts of the path. E.g. if the
> first part of the path after the task id does not match a process the
> following exception is thrown:
> {noformat}
> Traceback (most recent call last):
> File
> "/root/.pex/install/bottle-0.11.6-py2.py3-none-any.whl.e1e7f36ef104f01896f13c85c9899f9d3d0a8813/bottle-0.11.6-py2.py3-none-any.whl/bottle.py",
> line 764, in _handle
> return route.call(**args)
> File
> "/root/.pex/install/bottle-0.11.6-py2.py3-none-any.whl.e1e7f36ef104f01896f13c85c9899f9d3d0a8813/bottle-0.11.6-py2.py3-none-any.whl/bottle.py",
> line 1575, in wrapper
> rv = callback(*a, **ka)
> File
> "/root/.pex/install/bottle-0.11.6-py2.py3-none-any.whl.e1e7f36ef104f01896f13c85c9899f9d3d0a8813/bottle-0.11.6-py2.py3-none-any.whl/bottle.py",
> line 3138, in wrapper
> result = func(*args, **kwargs)
> File
> "/root/.pex/install/bottle-0.11.6-py2.py3-none-any.whl.e1e7f36ef104f01896f13c85c9899f9d3d0a8813/bottle-0.11.6-py2.py3-none-any.whl/bottle.py",
> line 3138, in wrapper
> result = func(*args, **kwargs)
> File "apache/thermos/observer/http/file_browser.py", line 76, in handle_logs
> types = self._observer.logs(task_id, process, int(run))
> File
> "/root/.pex/install/twitter.common.lang-0.3.3-py2-none-any.whl.3480f0b52b6872afe1c1c2ac8f43fb78cc44a3ae/twitter.common.lang-0.3.3-py2-none-any.whl/twitter/common/lang/lockable.py",
> line 13, in wrapper
> return method(self, *args, **kw)
> File "apache/thermos/observer/task_observer.py", line 551, in logs
> run = self.get_run_number(runner_state, process, run)
> File
> "/root/.pex/install/twitter.common.lang-0.3.3-py2-none-any.whl.3480f0b52b6872afe1c1c2ac8f43fb78cc44a3ae/twitter.common.lang-0.3.3-py2-none-any.whl/twitter/common/lang/lockable.py",
> line 13, in wrapper
> return method(self, *args, **kw)
> File "apache/thermos/observer/task_observer.py", line 531, in get_run_number
> if run < len(runner_state.processes[process]):
> KeyError: 'xrun_server'
> {noformat}
> Ideally we'd return a 404 for all of these cases.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)