PATCH: plague-0.5.0: PackageJob.py: NameError _and_ YumBaseError (unable to kill its job)

Joe Todaro jstodaro at us.ibm.com
Tue Nov 21 15:50:53 UTC 2006


Dan Williams wrote on 11/19/2006 06:34:31 PM:

> On Fri, 2006-11-17 at 22:43 -0500, Joe Todaro wrote:
> > 
> > Dan Williams wrote on 11/13/2006 03:26:58 PM:
> > 
> > > On Sun, 2006-11-05 at 23:48 -0500, Joe Todaro wrote:
> > > > 
> > > > ---- PROBLEM # 1 ----  Depsolve step keeps crashing due to a typo
> > in
> > > > the script: 
> > > > 
> > > > 364 (fuse-sshfs): Starting depsolve for arches: ['x86_64',
> > 'i386']. 
> > > > Exception in thread PackageJob: 364/fuse-sshfs: 
> > > > [...snip...] 
> > > > >   File "/usr/share/plague/server/PackageJob.py", line 513, in 
> > > > > _arch_deps_solved 
> > > > >     base.log = logger.Logger(threshold=threshold,
> > > > file_object=sys.stdout) 
> > > > > NameError: global name 'logger' is not defined 
> > > 
> > > Fixed, thanks! 
> > 
> > My pleasure - glad to help. 
> > 
> > > 
> > > > 
> > > > ---- PROBLEM # 2 ---- Unable to kill any job that fails due to a
> > > > missing package/s in the yum repos: 
> > > > 
> > > > >   File "/usr/share/plague/server/PackageJob.py", line 548, in
> > > > _arch_deps_solved 
> > > > >    pkg = base.returnPackageByDep(dep) 
> > > > >   File "__init__.py", line 1342, in returnPackageByDep 
> > > > > YumBaseError: No Package found for fuse-devel 
> > > 
> > > What version of yum do you have on this machine? 
> > 
> > yum-2.4.2-2 
> 
> Ok, can you do the following, so we can find out which module
> YumBaseError lives in in yum-2.4.2/yum-utils:
> 
> grep -r "YumBaseError" /usr/lib/python2.3/site-packages

$ grep -rn "YumBaseError" /usr/lib/python2.3/site-packages
/usr/lib/python2.3/site-packages/yum/__init__.py:174:            raise 
Errors.YumBaseError, 'Setting up TransactionSets before config class is 
up'
/usr/lib/python2.3/site-packages/yum/__init__.py:358:            raise 
Errors.YumBaseError, errstring
/usr/lib/python2.3/site-packages/yum/__init__.py:550:           callback, 
raise yum.Errors.YumBaseError on problems"""
/usr/lib/python2.3/site-packages/yum/__init__.py:650:           output 
based on callback, raise yum.Errors.YumBaseError on problems"""
/usr/lib/python2.3/site-packages/yum/__init__.py:1321: raise 
Errors.YumBaseError, 'Invalid versioned dependency string, try quoting 
it.'
/usr/lib/python2.3/site-packages/yum/__init__.py:1323: raise 
Errors.YumBaseError, 'Invalid version flag'
/usr/lib/python2.3/site-packages/yum/__init__.py:1337:        except 
Errors.YumBaseError, e:
/usr/lib/python2.3/site-packages/yum/__init__.py:1338:            raise 
Errors.YumBaseError, 'No Package found for %s' % depstring
/usr/lib/python2.3/site-packages/yum/__init__.py:1342:            raise 
Errors.YumBaseError, 'No Package found for %s' % depstring
/usr/lib/python2.3/site-packages/yum/__init__.py:1348:           If the 
list is empty, raise Errors.YumBaseError"""
/usr/lib/python2.3/site-packages/yum/__init__.py:1397: raise 
Errors.YumBaseError, 'Invalid versioned dependency string, try quoting 
it.'
/usr/lib/python2.3/site-packages/yum/__init__.py:1399: raise 
Errors.YumBaseError, 'Invalid version flag'
Binary file /usr/lib/python2.3/site-packages/yum/__init__.pyc matches
/usr/lib/python2.3/site-packages/yum/Errors.py:22:class 
YumBaseError(exceptions.Exception):
/usr/lib/python2.3/site-packages/yum/Errors.py:27:class 
LockError(YumBaseError):
/usr/lib/python2.3/site-packages/yum/Errors.py:29: 
YumBaseError.__init__(self)
/usr/lib/python2.3/site-packages/yum/Errors.py:33:class 
DepError(YumBaseError):
/usr/lib/python2.3/site-packages/yum/Errors.py:35: 
YumBaseError.__init__(self)
/usr/lib/python2.3/site-packages/yum/Errors.py:38:class 
RepoError(YumBaseError):
/usr/lib/python2.3/site-packages/yum/Errors.py:40: 
YumBaseError.__init__(self)
/usr/lib/python2.3/site-packages/yum/Errors.py:43:class 
ConfigError(YumBaseError):
/usr/lib/python2.3/site-packages/yum/Errors.py:45: 
YumBaseError.__init__(self)
/usr/lib/python2.3/site-packages/yum/Errors.py:48:class 
MiscError(YumBaseError):
/usr/lib/python2.3/site-packages/yum/Errors.py:50: 
YumBaseError.__init__(self)
/usr/lib/python2.3/site-packages/yum/Errors.py:53:class 
GroupsError(YumBaseError):
/usr/lib/python2.3/site-packages/yum/Errors.py:55: 
YumBaseError.__init__(self)
Binary file /usr/lib/python2.3/site-packages/yum/Errors.pyc matches
Binary file /usr/lib/python2.3/site-packages/yumex/yum24XBase.pyc matches
/usr/lib/python2.3/site-packages/yumex/yumexBase.py:72:class YumexError( 
yum.Errors.YumBaseError ):
/usr/lib/python2.3/site-packages/yumex/yumexBase.py:74: 
yum.Errors.YumBaseError.__init__( self )
/usr/lib/python2.3/site-packages/yumex/yumexBase.py:615:        except 
yum.Errors.YumBaseError, e:
/usr/lib/python2.3/site-packages/yumex/yumexBase.py:640:        except 
Errors.YumBaseError, e:
/usr/lib/python2.3/site-packages/yumex/yumexBase.py:675: raise 
yum.Errors.YumBaseError( errstring )
/usr/lib/python2.3/site-packages/yumex/yumexBase.py:685: raise 
yum.Errors.YumBaseError( errstring )
/usr/lib/python2.3/site-packages/yumex/yumexBase.py:695: raise 
yum.Errors.YumBaseError( errstring )
/usr/lib/python2.3/site-packages/yumex/yumexBase.py:724:            raise 
yum.Errors.YumBaseError( errstring )
/usr/lib/python2.3/site-packages/yumex/yumexBase.py:800:        Will raise 
YumBaseError if there's a problem
/usr/lib/python2.3/site-packages/yumex/yumexBase.py:817:#   raise 
yum.Errors.YumBaseError, \
/usr/lib/python2.3/site-packages/yumex/yumexBase.py:832:      raise 
yum.Errors.YumBaseError(
/usr/lib/python2.3/site-packages/yumex/yumexBase.py:843:      raise 
yum.Errors.YumBaseError, \
/usr/lib/python2.3/site-packages/yumex/yumexBase.py:864:      raise 
yum.Errors.YumBaseError, \
/usr/lib/python2.3/site-packages/yumex/yumexBase.py:870:  raise 
yum.Errors.YumBaseError, \
/usr/lib/python2.3/site-packages/yumex/yumexBase.py:881:  raise 
yum.Errors.YumBaseError, errmsg
/usr/lib/python2.3/site-packages/yumex/yumexBase.py:885: raise 
yum.Errors.YumBaseError, errmsg
Binary file /usr/lib/python2.3/site-packages/yumex/yumexBase.pyc matches
/usr/lib/python2.3/site-packages/yumex/yum24XBase.py:44: InstallError = 
UpdateError = yum.Errors.YumBaseError

Line #'s included.

Thanks,
Joe

> 
> (or if you have python 2.4, use python2.4 instead of course).
> 
> Thanks,
> Dan
> 
> 
> > 
> > > The versions of the
> > > yum python libraries are a bit confusing here; and that's probably
> > where
> > > the error is coming from.  It appears that an unexpected error is
> > > getting thrown, and we need to catch that error.  However, I'm not
> > sure
> > > where exactly it's coming from to catch it.  Can you try to get this
> > > error again and then paste in about 10 lines of code from around the
> > > Line # in PackageJob.py that this backtrace comes from? (ie, line
> > 548
> > > here), and mark the line numbers too? 
> > 
> >     537             try: 
> >     538                 base.doSackSetup(archlist) 
> >     539             except yum.Errors.RepoError, exc: 
> >     540                 raise DepError(str(exc)) 
> >     541 
> >     542             for dep in srpm.requiresList(): 
> >     543                 if dep.startswith("rpmlib("): 
> >     544                     continue 
> >     545                 if use_repomd: 
> >     546                     try: 
> >     547                         pkg = base.returnPackageByDep(dep) 
> >     548                     except repomd.mdErrors.PackageSackError,
> > exc: 
> >     549                         raise DepError(str(exc)) 
> >     550                 else: 
> >     551                     try: 
> >     552                         pkg = base.returnPackageByDep(dep) 
> >     553                     except yum.Errors.PackageSackError, exc: 
> >     554                         raise DepError(str(exc)) 
> >     555                     except yum.Errors.YumBaseError, exc: 
> >     556                         raise DepError(str(exc)) 
> >     557         except DepError, exc: 
> >     558             self._last_depsolve_error = str(exc) 
> >     559             print "%s (%s/%s): Depsolve Error: %s" %
> > (self.uid, self.package, arch, str(exc)) 
> >     560             success = False 
> > 
> > > 
> > > The fix you posted for this hunk isn't the "correct" fix; 
> > 
> > Actually, it wasn't intended to "fix" the (YumBaseError) problem 
> > itself -- rather it was just intended to provide us with a means by 
> > which we'd be able to "recover* from the negative effects of the 
> > problem, which was a plague-server that wouldn't allow us to *kill* 
> > the associated buildjob because the buildjob wasn't in "waiting" 
> > state -- it was in "depsolve" which is where it got stuck. Anyway, 
> > recycling the plague-server did not help -- it just kept restarting 
> > the buildjob which just kept failing in the same place even after we 
> > downloaded the missing package (fuse-devel) to the yum repo and ran 
> > the createrepo command in-between plague-server restarts. 
> > 
> > > that would be
> > > to catch the exception and to re-throw it as a DepSolveError as is
> > done
> > > for the other 'execpt' blocks around there.
> > > 
> > > Cheers,
> > > Dan
> > > 
> > > > 
> > > > ---- PATCH ---- 
> > > > 
> > > > Here's the patch that resolved the above 2 problems for us: 
> > > > 
> > > > 
> > > > 
> > > > ----- REQUEST ---- 
> > > > 
> > > > Can someone please review it... especially the fix to PROBLEM # 2,
> > > > that could potentially be masking a bigger problem.. 
> > > > 
> > > > Here's the code for your convenience (...these are the updates we
> > made
> > > > to the _latest_ version of PackageJob.py): 
> > > > 
> > > > $ cd /usr/share/plague/server 
> > > > $ diff PackageJob.py PackageJob.py.working 
> > > > 513c513 
> > > > <                 base.log = logger.Logger(threshold=threshold,
> > > > file_object=sys.stdout) 
> > > > --- 
> > > > >                 base.log = Logger(threshold=threshold,
> > > > file_object=sys.stdout) 
> > > > 698c698 
> > > > <         if self._curstage == 'waiting': 
> > > > --- 
> > > > >         if self._curstage in ['waiting', 'depsolve']: 
> > > > 
> > > > 
> > > > Thanks, 
> > > >   Joe
> > > > --
> > > > Fedora-buildsys-list mailing list
> > > > Fedora-buildsys-list at redhat.com
> > > > https://www.redhat.com/mailman/listinfo/fedora-buildsys-list
> > > 
> > > --
> > > Fedora-buildsys-list mailing list
> > > Fedora-buildsys-list at redhat.com
> > > https://www.redhat.com/mailman/listinfo/fedora-buildsys-list
> > --
> > Fedora-buildsys-list mailing list
> > Fedora-buildsys-list at redhat.com
> > https://www.redhat.com/mailman/listinfo/fedora-buildsys-list
> 
> --
> Fedora-buildsys-list mailing list
> Fedora-buildsys-list at redhat.com
> https://www.redhat.com/mailman/listinfo/fedora-buildsys-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/fedora-buildsys-list/attachments/20061121/b1be1226/attachment.htm>


More information about the Fedora-buildsys-list mailing list