mirror of https://github.com/borgbackup/borg.git
Remote: don't print tracebacks for Error exceptions handled downstream
(What we'd really want is to have proper exception transporting over the RPC) Fixes #792
This commit is contained in:
parent
bf208479d7
commit
425a4d819d
|
@ -93,8 +93,12 @@ class RepositoryServer: # pragma: no cover
|
||||||
f = getattr(self.repository, method)
|
f = getattr(self.repository, method)
|
||||||
res = f(*args)
|
res = f(*args)
|
||||||
except BaseException as e:
|
except BaseException as e:
|
||||||
logging.exception('Borg %s: exception in RPC call:', __version__)
|
# These exceptions are reconstructed on the client end in RemoteRepository.call_many(),
|
||||||
logging.error(sysinfo())
|
# and will be handled just like locally raised exceptions. Suppress the remote traceback
|
||||||
|
# for these, except ErrorWithTraceback, which should always display a traceback.
|
||||||
|
if not isinstance(e, (Repository.DoesNotExist, Repository.AlreadyExists, PathNotAllowed)):
|
||||||
|
logging.exception('Borg %s: exception in RPC call:', __version__)
|
||||||
|
logging.error(sysinfo())
|
||||||
exc = "Remote Exception (see remote log for the traceback)"
|
exc = "Remote Exception (see remote log for the traceback)"
|
||||||
os.write(stdout_fd, msgpack.packb((1, msgid, e.__class__.__name__, exc)))
|
os.write(stdout_fd, msgpack.packb((1, msgid, e.__class__.__name__, exc)))
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue