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

Dan Williams dcbw at redhat.com
Sun Nov 19 23:34:31 UTC 2006


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

(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




More information about the buildsys mailing list