Blame SOURCES/BZ-1356797-silent-exception.patch

5e9bef
commit c8c4065931bec55e9b2eb0f16a97376e8650846b
5e9bef
Author: Radek Vykydal <rvykydal@redhat.com>
5e9bef
Date:   Wed Aug 10 11:10:58 2016 +0200
5e9bef
5e9bef
    Report __del__ RepoError exceptions into log instead of stderr (#1356797)
5e9bef
    
5e9bef
    Resolves: rhbz#1356797
5e9bef
    
5e9bef
    So it does not clutter text UI of clients like Anaconda.
5e9bef
5e9bef
diff --git a/yum/__init__.py b/yum/__init__.py
5e9bef
index 57e1dfe..9e38320 100644
5e9bef
--- a/yum/__init__.py
5e9bef
+++ b/yum/__init__.py
5e9bef
@@ -234,11 +234,14 @@ class YumBase(depsolve.Depsolve):
5e9bef
         self.updateinfo_filters = {}
5e9bef
 
5e9bef
     def __del__(self):
5e9bef
-        self.close()
5e9bef
-        self.closeRpmDB()
5e9bef
-        self.doUnlock()
5e9bef
-        # call cleanup callbacks
5e9bef
-        for cb in self._cleanup: cb()
5e9bef
+        try:
5e9bef
+            self.close()
5e9bef
+            self.closeRpmDB()
5e9bef
+            self.doUnlock()
5e9bef
+            # call cleanup callbacks
5e9bef
+            for cb in self._cleanup: cb()
5e9bef
+        except Errors.RepoError, e:
5e9bef
+            self.verbose_logger.debug("Exception %s %s in %s ignored" % (repr(e), str(e), self.__del__))
5e9bef
 
5e9bef
     def close(self):
5e9bef
         """Close the history and repo objects."""
5e9bef
diff --git a/yum/repos.py b/yum/repos.py
5e9bef
index a0ef28c..017527a 100644
5e9bef
--- a/yum/repos.py
5e9bef
+++ b/yum/repos.py
5e9bef
@@ -161,7 +161,10 @@ class RepoStorage:
5e9bef
         return str(self.repos.keys())
5e9bef
 
5e9bef
     def __del__(self):
5e9bef
-        self.close()
5e9bef
+        try:
5e9bef
+            self.close()
5e9bef
+        except Errors.RepoError, e:
5e9bef
+            self.logger.debug("Exception %s %s in %s ignored" % (repr(e), str(e), self.__del__))
5e9bef
 
5e9bef
     def close(self):
5e9bef
         for repo in self.repos.values():
5e9bef
@@ -423,7 +426,10 @@ class Repository:
5e9bef
         return hash(self.id)
5e9bef
         
5e9bef
     def __del__(self):
5e9bef
-        self.close()
5e9bef
+        try:
5e9bef
+            self.close()
5e9bef
+        except Errors.RepoError, e:
5e9bef
+            self.logger.debug("Exception %s %s in %s ignored" % (repr(e), str(e), self.__del__))
5e9bef
 
5e9bef
     def _ui_id(self):
5e9bef
         """ Show self.id, so we can use it and override it. """
5e9bef
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
5e9bef
index 9c3d274..2db8faf 100644
5e9bef
--- a/yum/yumRepo.py
5e9bef
+++ b/yum/yumRepo.py
5e9bef
@@ -114,7 +114,10 @@ class YumPackageSack(packageSack.PackageSack):
5e9bef
         self.added = {}
5e9bef
 
5e9bef
     def __del__(self):
5e9bef
-        self.close()
5e9bef
+        try:
5e9bef
+            self.close()
5e9bef
+        except Errors.RepoError, e:
5e9bef
+            verbose_logger.debug("Exception %s %s in %s ignored" % (repr(e), str(e), self.__del__))
5e9bef
 
5e9bef
     def close(self):
5e9bef
         self.added = {}