On Fri, 2006-10-27 at 02:01 -0400, Joe Todaro wrote:
> 
> Hi, 
> 
> Has anyone ever seen a yum/depsolve-related error like this before in
> their *plague-0.5.0* build environment, and then tried *killing* the
> job that had caused it?   This was problem three of three which I had
> mentioned in my previous posts.   And it too had surfaced last week
> while we started stress-testing our buildsystem.   Actually, the error
> you see below in itself was *not* the problem (we knew how to fix
> that) -- rather, it was the fact that we were *unable* to kill the job
> (plague-client kill 204) that was responsible for causing the error.  

Fix has been committed to HEAD, attaching the patch for your
convenience.

Thanks!
Dan

> ====== THE ERROR ====== 
> 204 (fuse-sshfs): Starting tag 'fuse-sshfs-1_6-4_ocrhel4' on target
> 'oc-rhel4-pre' 
> 204 (fuse-sshfs): Requesting depsolve... 
> 204 (fuse-sshfs): Starting depsolve for arches: ['x86_64', 'i386',
> 'i686']. 
> Exception in thread PackageJob: 204/fuse-sshfs: 
> Traceback (most recent call last): 
>   File "/usr/lib64/python2.3/threading.py", line 436, in __bootstrap 
>     self.run() 
>   File "/usr/share/plague/server/PackageJob.py", line 86, in run 
>     self._pkg_job.process() 
>   File "/usr/share/plague/server/PackageJob.py", line 753, in process 
>     if func(): 
>   File "/usr/share/plague/server/PackageJob.py", line 618, in
> _stage_depsolve 
>     if self._arch_deps_solved(arch) == False: 
>   File "/usr/share/plague/server/PackageJob.py", line 562, in
> _arch_deps_solved 
>     except yum.Errors.PackageSackError, exc: 
> AttributeError: 'module' object has no attribute 'PackageSackError' 
> 
> ====== OUR FIX ======  
> We updated line 680 in the *die* method of the
> */usr/share/plague/server/PackageJob.py * module.   Here's the patch: 
> 
> 
> Again, can someone please review the fix..  We just want to make sure
> that it won't come back to *haunt* us later on / or possibly even be
> *masking* another problem.   Thank you. 
> 
> -Joe 
> --
> Fedora-buildsys-list mailing list
> Fedora-buildsys-list@redhat.com
> https://www.redhat.com/mailman/listinfo/fedora-buildsys-list
Index: ChangeLog
===================================================================
RCS file: /cvs/fedora/extras-buildsys/ChangeLog,v
retrieving revision 1.212
diff -u -r1.212 ChangeLog
--- ChangeLog	31 Oct 2006 16:46:20 -0000	1.212
+++ ChangeLog	31 Oct 2006 17:57:03 -0000
@@ -1,5 +1,12 @@
 2006-10-31  Dan Williams  <[EMAIL PROTECTED]>
 
+	* server/PackageJob.py
+		- Fixes for older python versions that don't have yum.Errors.* but
+			yum-utils' repomd module instead
+		- Fixes for Yum 3.x logging changes
+
+2006-10-31  Dan Williams  <[EMAIL PROTECTED]>
+
 	Patches by Joe Todaro <[EMAIL PROTECTED]>
 	* server/PackageJob.py
 		- (_kill_all_archjobs): don't traceback when killing jobs in depsolve_wait,
Index: server/PackageJob.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/PackageJob.py,v
retrieving revision 1.55
diff -u -r1.55 PackageJob.py
--- server/PackageJob.py	31 Oct 2006 16:46:21 -0000	1.55
+++ server/PackageJob.py	31 Oct 2006 17:57:04 -0000
@@ -32,12 +32,19 @@
 from plague import DebugUtils
 
 import yum
+use_repomd = False
 try:
     import repomd.mdErrors
+    use_repomd = True
 except ImportError:
     pass
-from yum.logger import Logger
 
+use_yum_logger = False
+try:
+    from yum.logger import Logger
+    use_yum_logger = True
+except ImportError:
+    pass
 
 CVS_CMD = "/usr/bin/cvs"
 MAKE_CMD = "/usr/bin/make"
@@ -497,10 +504,17 @@
 
             depsolve_root = os.path.dirname(yum_config) + '/'
             base.doConfigSetup(fn=yum_config, root=depsolve_root)
+
             threshold = 0
             if DEBUG:
                 threshold = 5
-            base.log = Logger(threshold=threshold, file_object=sys.stdout)
+            if use_yum_logger == True:
+                # For yum 2.x and earlier
+                base.log = logger.Logger(threshold=threshold, file_object=sys.stdout)
+            else:
+                # Use python logging module (yum 3.x and later)
+                base.doLoggingSetup(threshold, 1)
+
             try:
                 base.doRepoSetup()
             except yum.Errors.RepoError, exc:
@@ -528,14 +542,18 @@
             for dep in srpm.requiresList():
                 if dep.startswith("rpmlib("):
                     continue
-                try:
-                    pkg = base.returnPackageByDep(dep)
-                except repomd.mdErrors.PackageSackError, exc:
-                    raise DepError(str(exc))
-                except yum.Errors.PackageSackError, exc:
-                    raise DepError(str(exc))
-                except yum.Errors.YumBaseError, exc:
-                    raise DepError(str(exc))
+                if use_repomd:
+                    try:
+                        pkg = base.returnPackageByDep(dep)
+                    except repomd.mdErrors.PackageSackError, exc:
+                        raise DepError(str(exc))
+                else:
+                    try:
+                        pkg = base.returnPackageByDep(dep)
+                    except yum.Errors.PackageSackError, exc:
+                        raise DepError(str(exc))
+                    except yum.Errors.YumBaseError, exc:
+                        raise DepError(str(exc))
         except DepError, exc:
             self._last_depsolve_error = str(exc)
             print "%s (%s/%s): Depsolve Error: %s" % (self.uid, self.package, arch, str(exc))
--
Fedora-buildsys-list mailing list
Fedora-buildsys-list@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-buildsys-list

Reply via email to