Ensure SystemExit is never caught.
authorZac Medico <zmedico@gentoo.org>
Thu, 26 Aug 2010 21:49:34 +0000 (14:49 -0700)
committerZac Medico <zmedico@gentoo.org>
Thu, 26 Aug 2010 21:49:34 +0000 (14:49 -0700)
pym/_emerge/depgraph.py
pym/portage/cache/sql_template.py
pym/portage/dispatch_conf.py
pym/portage/getbinpkg.py
pym/portage/locks.py
pym/portage/process.py
pym/portage/tests/__init__.py

index 4517f28b6436aa4783c97de9abf8384150fc6110..effb2e541566156c70beea05d4d1906a5cf4ab3e 100644 (file)
@@ -3197,9 +3197,9 @@ class depgraph(object):
                                                        success, atoms = portage.dep_check(depstr,
                                                                final_db, pkgsettings, myuse=self._pkg_use_enabled(pkg),
                                                                trees=self._dynamic_config._graph_trees, myroot=myroot)
+                                               except SystemExit:
+                                                       raise
                                                except Exception as e:
-                                                       if isinstance(e, SystemExit):
-                                                               raise
                                                        # This is helpful, for example, if a ValueError
                                                        # is thrown from cpv_expand due to multiple
                                                        # matches (this can happen if an atom lacks a
index d3c6a0b30d4115d0e8dd54a7db224d9984858338..d023b1b5d0b0174ebb3c69bf043d63d679fe59e7 100644 (file)
@@ -129,6 +129,8 @@ class SQLDatabase(template.database):
                                raise cache_errors.CacheCorruption(self, cpv, e)
                        if self.con.rowcount <= 0:
                                raise KeyError(cpv)
+               except SystemExit:
+                       raise
                except Exception:
                        if not self.autocommits:
                                self.db.rollback()
@@ -166,6 +168,8 @@ class SQLDatabase(template.database):
                        if self.autocommits:
                                self.commit()
 
+               except SystemExit:
+                       raise
                except Exception:
                        if not self.autocommits:
                                try:
index b4cded266fe683299669add6447a3785236b8ffc..c543afd33eed20939090badde14b748983fc0c3e 100644 (file)
@@ -79,7 +79,7 @@ def rcs_archive(archive, curconf, newconf, mrgconf):
 
     try:
         os.makedirs(os.path.dirname(archive))
-    except:
+    except OSError:
         pass
 
     try:
@@ -125,7 +125,7 @@ def file_archive(archive, curconf, newconf, mrgconf):
 
     try:
         os.makedirs(os.path.dirname(archive))
-    except:
+    except OSError:
         pass
 
     # Archive the current config file if it isn't already saved
index e15853f1e8fe04d3ca16f35b30eb8b158739e518..56167c50496ef30163dfc8c531aa26021cfe5a7a 100644 (file)
@@ -23,7 +23,7 @@ except ImportError:
 
 try:
        from urllib.parse import unquote as urllib_parse_unquote
-except:
+except ImportError:
        from urllib2 import unquote as urllib_parse_unquote
 
 try:
index 4a86e5acbde1d9e7094d3f41190d8ee2957ab3e6..000e4fac0f346007e1263531a617c0b78e0be719 100644 (file)
@@ -236,6 +236,8 @@ def unlockfile(mytuple):
                                writemsg(_("lockfile does not exist '%s'\n") % lockfilename, 1)
                                os.close(myfd)
                                return False
+       except SystemExit:
+               raise
        except Exception as e:
                writemsg(_("Failed to get lock... someone took it.\n"), 1)
                writemsg(str(e)+"\n",1)
index aed727167f84f1c34018956cd9b0c9c3d3f5ad57..66ec1edd05d6ad89a4cb265ae1d27d534e9c1c8d 100644 (file)
@@ -246,6 +246,8 @@ def spawn(mycommand, env={}, opt_name=None, fd_pipes=None, returnpid=False,
                try:
                        _exec(binary, mycommand, opt_name, fd_pipes,
                              env, gid, groups, uid, umask, pre_exec)
+               except SystemExit:
+                       raise
                except Exception as e:
                        # We need to catch _any_ exception so that it doesn't
                        # propogate out of this function and cause exiting
index bd41f1ee893a06de63f7403fe925c40c480e70c9..3c3305252e9e4fe435928dfd87f02a3b0ffb4501 100644 (file)
@@ -153,6 +153,8 @@ class TestCase(unittest.TestCase):
                try:
                        try:
                                self.setUp()
+                       except SystemExit:
+                               raise
                        except KeyboardInterrupt:
                                raise
                        except:
@@ -173,6 +175,8 @@ class TestCase(unittest.TestCase):
                                result.addError(self, sys.exc_info())
                        try:
                                self.tearDown()
+                       except SystemExit:
+                               raise
                        except KeyboardInterrupt:
                                raise
                        except: