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
> [email protected]
> 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
[email protected]
https://www.redhat.com/mailman/listinfo/fedora-buildsys-list