-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Open
Labels
Description
Don’t show stack traces to ordinary users
If TensorBoard dies with an exception, that exception is typically
displayed as a stack trace plus error message. This isn’t very friendly:
$ tensorboard
Traceback (most recent call last):
File "/usr/local/google/home/wchargin/virtualenv/tf-nightly-20190201-py2.7/bin/tensorboard", line 10, in <module>
sys.exit(run_main())
File "/usr/local/google/home/wchargin/virtualenv/tf-nightly-20190201-py2.7/local/lib/python2.7/site-packages/tensorboard/main.py", line 62, in run_main
app.run(tensorboard.main, flags_parser=tensorboard.configure)
File "/usr/local/google/home/wchargin/virtualenv/tf-nightly-20190201-py2.7/local/lib/python2.7/site-packages/absl/app.py", line 294, in run
flags_parser,
File "/usr/local/google/home/wchargin/virtualenv/tf-nightly-20190201-py2.7/local/lib/python2.7/site-packages/absl/app.py", line 351, in _run_init
flags_parser=flags_parser,
File "/usr/local/google/home/wchargin/virtualenv/tf-nightly-20190201-py2.7/local/lib/python2.7/site-packages/absl/app.py", line 213, in _register_and_parse_flags_with_usage
args_to_main = flags_parser(original_argv)
File "/usr/local/google/home/wchargin/virtualenv/tf-nightly-20190201-py2.7/local/lib/python2.7/site-packages/tensorboard/program.py", line 182, in configure
loader.fix_flags(flags)
File "/usr/local/google/home/wchargin/virtualenv/tf-nightly-20190201-py2.7/local/lib/python2.7/site-packages/tensorboard/plugins/core/core_plugin.py", line 461, in fix_flags
raise ValueError('A logdir or db must be specified. '
ValueError: A logdir or db must be specified. For example `tensorboard --logdir mylogdir` or `tensorboard --db sqlite:~/.tensorboard.db`. Run `tensorboard --helpfull` for details and examples.
or:
$ tensorboard --logdir . --host wat
Traceback (most recent call last):
File "/usr/local/google/home/wchargin/virtualenv/tf-nightly-20190201-py2.7/bin/tensorboard", line 10, in <module>
sys.exit(run_main())
File "/usr/local/google/home/wchargin/virtualenv/tf-nightly-20190201-py2.7/local/lib/python2.7/site-packages/tensorboard/main.py", line 62, in run_main
app.run(tensorboard.main, flags_parser=tensorboard.configure)
File "/usr/local/google/home/wchargin/virtualenv/tf-nightly-20190201-py2.7/local/lib/python2.7/site-packages/absl/app.py", line 300, in run
_run_main(main, args)
File "/usr/local/google/home/wchargin/virtualenv/tf-nightly-20190201-py2.7/local/lib/python2.7/site-packages/absl/app.py", line 251, in _run_main
sys.exit(main(argv))
File "/usr/local/google/home/wchargin/virtualenv/tf-nightly-20190201-py2.7/local/lib/python2.7/site-packages/tensorboard/program.py", line 209, in main
server = self._make_server()
File "/usr/local/google/home/wchargin/virtualenv/tf-nightly-20190201-py2.7/local/lib/python2.7/site-packages/tensorboard/program.py", line 245, in _make_server
return self.server_class(app, self.flags)
File "/usr/local/google/home/wchargin/virtualenv/tf-nightly-20190201-py2.7/local/lib/python2.7/site-packages/tensorboard/program.py", line 298, in __init__
super(WerkzeugServer, self).__init__(host, flags.port, wsgi_app)
File "/usr/local/google/home/wchargin/virtualenv/tf-nightly-20190201-py2.7/local/lib/python2.7/site-packages/werkzeug/serving.py", line 577, in __init__
self.address_family), handler)
File "/usr/lib/python2.7/SocketServer.py", line 417, in __init__
self.server_bind()
File "/usr/local/google/home/wchargin/virtualenv/tf-nightly-20190201-py2.7/local/lib/python2.7/site-packages/tensorboard/program.py", line 373, in server_bind
super(WerkzeugServer, self).server_bind()
File "/usr/lib/python2.7/BaseHTTPServer.py", line 108, in server_bind
SocketServer.TCPServer.server_bind(self)
File "/usr/lib/python2.7/SocketServer.py", line 431, in server_bind
self.socket.bind(self.server_address)
File "/usr/lib/python2.7/socket.py", line 228, in meth
return getattr(self._sock,name)(*args)
socket.gaierror: [Errno -2] Name or service not known
We can improve on this wall of text by adding a top-level exception
handler that just prints the error message (the last line in the above
block). We may want to also save the stack trace to a file somewhere in
case the user does want to debug it (e.g., they’re a TensorBoard
developer).
(c/o @manivaradarajan)
manivaradarajan