anaconda/bugfix-Handle-exceptions-from-threads-without-new-instances.patch

37 lines
1.3 KiB
Diff
Raw Normal View History

From 8ab916a0fe7b46b20c3a51828600b4f7f207717a Mon Sep 17 00:00:00 2001
From: Vladimir Slavik <vslavik@redhat.com>
Date: Tue, 18 Aug 2020 15:23:49 +0200
Subject: [PATCH] Handle exceptions from threads without new instances
It is not possible to instantiate some exceptions with just an instance as
the only argument, for example UnicodeError and descendants. However, these
days it is possible to raise directly with the provided instance, no need to
instantiate the class. The instance also has the traceback already set, so no
need to set it either.
The original apparently came to be so due to incrementally rewriting python2's
3-argument form of raise. See also previous commits affecting this line,
in chronological order: 07b7034, d16512e, a6085b8.
Resolves: rhbz#1835027
---
pyanaconda/threading.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pyanaconda/threading.py b/pyanaconda/threading.py
index e0ab80229..d2327cf39 100644
--- a/pyanaconda/threading.py
+++ b/pyanaconda/threading.py
@@ -168,7 +168,7 @@ class ThreadManager(object):
with self._errors_lock:
exc_info = self._errors.pop(name)
if exc_info:
- raise exc_info[0](exc_info[1]).with_traceback(exc_info[2])
+ raise exc_info[1]
def in_main_thread(self):
"""Return True if it is run in the main thread."""
--
2.23.0