error: fix pickling of all exceptions
Make sure all our custom exceptions can be pickled so that if they get thrown in a multiprocess subprocess, we don't crash & hang due to multiprocessing being unable to pickle+unpickle the exception. Details/examples can be seen in Python reports like: https://bugs.python.org/issue13751 Change-Id: Iddf14d3952ad4e2867cfc71891d6b6559130df4b Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/297382 Reviewed-by: Michael Mortensen <mmortensen@google.com> Tested-by: Mike Frysinger <vapier@google.com>
This commit is contained in:
parent
401c6f0725
commit
057905fa1d
2 changed files with 61 additions and 8 deletions
16
error.py
16
error.py
|
@ -37,7 +37,7 @@ class NoManifestException(Exception):
|
|||
"""
|
||||
|
||||
def __init__(self, path, reason):
|
||||
super(NoManifestException, self).__init__()
|
||||
super(NoManifestException, self).__init__(path, reason)
|
||||
self.path = path
|
||||
self.reason = reason
|
||||
|
||||
|
@ -50,7 +50,7 @@ class EditorError(Exception):
|
|||
"""
|
||||
|
||||
def __init__(self, reason):
|
||||
super(EditorError, self).__init__()
|
||||
super(EditorError, self).__init__(reason)
|
||||
self.reason = reason
|
||||
|
||||
def __str__(self):
|
||||
|
@ -62,7 +62,7 @@ class GitError(Exception):
|
|||
"""
|
||||
|
||||
def __init__(self, command):
|
||||
super(GitError, self).__init__()
|
||||
super(GitError, self).__init__(command)
|
||||
self.command = command
|
||||
|
||||
def __str__(self):
|
||||
|
@ -74,7 +74,7 @@ class UploadError(Exception):
|
|||
"""
|
||||
|
||||
def __init__(self, reason):
|
||||
super(UploadError, self).__init__()
|
||||
super(UploadError, self).__init__(reason)
|
||||
self.reason = reason
|
||||
|
||||
def __str__(self):
|
||||
|
@ -86,7 +86,7 @@ class DownloadError(Exception):
|
|||
"""
|
||||
|
||||
def __init__(self, reason):
|
||||
super(DownloadError, self).__init__()
|
||||
super(DownloadError, self).__init__(reason)
|
||||
self.reason = reason
|
||||
|
||||
def __str__(self):
|
||||
|
@ -98,7 +98,7 @@ class NoSuchProjectError(Exception):
|
|||
"""
|
||||
|
||||
def __init__(self, name=None):
|
||||
super(NoSuchProjectError, self).__init__()
|
||||
super(NoSuchProjectError, self).__init__(name)
|
||||
self.name = name
|
||||
|
||||
def __str__(self):
|
||||
|
@ -112,7 +112,7 @@ class InvalidProjectGroupsError(Exception):
|
|||
"""
|
||||
|
||||
def __init__(self, name=None):
|
||||
super(InvalidProjectGroupsError, self).__init__()
|
||||
super(InvalidProjectGroupsError, self).__init__(name)
|
||||
self.name = name
|
||||
|
||||
def __str__(self):
|
||||
|
@ -128,7 +128,7 @@ class RepoChangedException(Exception):
|
|||
"""
|
||||
|
||||
def __init__(self, extra_args=None):
|
||||
super(RepoChangedException, self).__init__()
|
||||
super(RepoChangedException, self).__init__(extra_args)
|
||||
self.extra_args = extra_args or []
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue