Browse Source

log remote exceptions, add remote sysinfo

Thomas Waldmann 9 years ago
parent
commit
942120997e
2 changed files with 5 additions and 4 deletions
  1. 1 1
      borg/archiver.py
  2. 4 3
      borg/remote.py

+ 1 - 1
borg/archiver.py

@@ -1263,7 +1263,7 @@ def main():  # pragma: no cover
             msg += "\n%s\n%s" % (traceback.format_exc(), sysinfo())
         exit_code = e.exit_code
     except RemoteRepository.RPCError as e:
-        msg = 'Remote Exception.\n%s\n%s' % (str(e), sysinfo())
+        msg = '%s\n%s' % (str(e), sysinfo())
         exit_code = EXIT_ERROR
     except Exception:
         msg = 'Local Exception.\n%s\n%s' % (traceback.format_exc(), sysinfo())

+ 4 - 3
borg/remote.py

@@ -11,7 +11,7 @@ import traceback
 
 from . import __version__
 
-from .helpers import Error, IntegrityError
+from .helpers import Error, IntegrityError, sysinfo
 from .repository import Repository
 
 import msgpack
@@ -95,8 +95,9 @@ class RepositoryServer:  # pragma: no cover
                             f = getattr(self.repository, method)
                         res = f(*args)
                     except BaseException as e:
-                        # XXX rather log exception
-                        exc = "Remote Traceback by Borg %s%s%s" % (__version__, os.linesep, traceback.format_exc())
+                        logging.exception('Borg %s: exception in RPC call:', __version__)
+                        logging.error(sysinfo())
+                        exc = "Remote Exception (see remote log for the traceback)"
                         os.write(stdout_fd, msgpack.packb((1, msgid, e.__class__.__name__, exc)))
                     else:
                         os.write(stdout_fd, msgpack.packb((1, msgid, None, res)))