<br><tt><font size=2>Dan Williams wrote on 11/19/2006 06:34:31 PM:<br>
<br>
> On Fri, 2006-11-17 at 22:43 -0500, Joe Todaro wrote:<br>
> > <br>
> > Dan Williams wrote on 11/13/2006 03:26:58 PM:<br>
> > <br>
> > > On Sun, 2006-11-05 at 23:48 -0500, Joe Todaro wrote:<br>
> > > > <br>
> > > > ---- PROBLEM # 1 ----  Depsolve step keeps crashing
due to a typo<br>
> > in<br>
> > > > the script:  <br>
> > > > <br>
> > > > 364 (fuse-sshfs): Starting depsolve for arches: ['x86_64',<br>
> > 'i386']. <br>
> > > > Exception in thread PackageJob: 364/fuse-sshfs: <br>
> > > > [...snip...] <br>
> > > > >   File "/usr/share/plague/server/PackageJob.py",
line 513, in <br>
> > > > > _arch_deps_solved <br>
> > > > >     base.log = logger.Logger(threshold=threshold,<br>
> > > > file_object=sys.stdout) <br>
> > > > > NameError: global name 'logger' is not defined
 <br>
> > > <br>
> > > Fixed, thanks! <br>
> > <br>
> > My pleasure - glad to help. <br>
> > <br>
> > > <br>
> > > > <br>
> > > > ---- PROBLEM # 2 ---- Unable to kill any job that fails
due to a<br>
> > > > missing package/s in the yum repos: <br>
> > > > <br>
> > > > >   File "/usr/share/plague/server/PackageJob.py",
line 548, in<br>
> > > > _arch_deps_solved <br>
> > > > >    pkg = base.returnPackageByDep(dep)
<br>
> > > > >   File "__init__.py", line 1342,
in returnPackageByDep <br>
> > > > > YumBaseError: No Package found for fuse-devel
 <br>
> > > <br>
> > > What version of yum do you have on this machine?  
<br>
> > <br>
> > yum-2.4.2-2 <br>
> <br>
> Ok, can you do the following, so we can find out which module<br>
> YumBaseError lives in in yum-2.4.2/yum-utils:<br>
> <br>
> grep -r "YumBaseError" /usr/lib/python2.3/site-packages</font></tt>
<br>
<br><tt><font size=1>$ </font></tt><tt><font size=1 color=blue>grep -rn
"YumBaseError" /usr/lib/python2.3/site-packages</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/__init__.py:174:
           raise Errors.YumBaseError, 'Setting
up TransactionSets before config class is up'</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/__init__.py:358:
           raise Errors.YumBaseError, errstring</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/__init__.py:550:
          callback, raise yum.Errors.YumBaseError
on problems"""</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/__init__.py:650:
          output based on callback, raise yum.Errors.YumBaseError
on problems"""</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/__init__.py:1321:
                   raise
Errors.YumBaseError, 'Invalid versioned dependency string, try quoting
it.'</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/__init__.py:1323:
                   raise
Errors.YumBaseError, 'Invalid version flag'</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/__init__.py:1337:
       except Errors.YumBaseError, e:</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/__init__.py:1338:
           raise Errors.YumBaseError, 'No
Package found for %s' % depstring</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/__init__.py:1342:
           raise Errors.YumBaseError, 'No
Package found for %s' % depstring</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/__init__.py:1348:
          If the list is empty, raise Errors.YumBaseError"""</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/__init__.py:1397:
                   raise
Errors.YumBaseError, 'Invalid versioned dependency string, try quoting
it.'</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/__init__.py:1399:
                   raise
Errors.YumBaseError, 'Invalid version flag'</font></tt>
<br><tt><font size=1>Binary file /usr/lib/python2.3/site-packages/yum/__init__.pyc
matches</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/Errors.py:22:class
YumBaseError(exceptions.Exception):</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/Errors.py:27:class
LockError(YumBaseError):</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/Errors.py:29:
       YumBaseError.__init__(self)</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/Errors.py:33:class
DepError(YumBaseError):</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/Errors.py:35:
       YumBaseError.__init__(self)</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/Errors.py:38:class
RepoError(YumBaseError):</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/Errors.py:40:
       YumBaseError.__init__(self)</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/Errors.py:43:class
ConfigError(YumBaseError):</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/Errors.py:45:
       YumBaseError.__init__(self)</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/Errors.py:48:class
MiscError(YumBaseError):</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/Errors.py:50:
       YumBaseError.__init__(self)</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/Errors.py:53:class
GroupsError(YumBaseError):</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yum/Errors.py:55:
       YumBaseError.__init__(self)</font></tt>
<br><tt><font size=1>Binary file /usr/lib/python2.3/site-packages/yum/Errors.pyc
matches</font></tt>
<br><tt><font size=1>Binary file /usr/lib/python2.3/site-packages/yumex/yum24XBase.pyc
matches</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yumexBase.py:72:class
YumexError( yum.Errors.YumBaseError ):</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yumexBase.py:74:
       yum.Errors.YumBaseError.__init__( self )</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yumexBase.py:615:
       except yum.Errors.YumBaseError, e:</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yumexBase.py:640:
       except Errors.YumBaseError, e:</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yumexBase.py:675:
               raise yum.Errors.YumBaseError(
errstring )</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yumexBase.py:685:
               raise yum.Errors.YumBaseError(
errstring )</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yumexBase.py:695:
               raise yum.Errors.YumBaseError(
errstring )</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yumexBase.py:724:
           raise yum.Errors.YumBaseError(
errstring )</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yumexBase.py:800:
       Will raise YumBaseError if there's a problem</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yumexBase.py:817:#
                   raise
yum.Errors.YumBaseError, \</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yumexBase.py:832:
                     
 raise yum.Errors.YumBaseError(</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yumexBase.py:843:
                     
 raise yum.Errors.YumBaseError, \</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yumexBase.py:864:
                     
 raise yum.Errors.YumBaseError, \</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yumexBase.py:870:
                   raise
yum.Errors.YumBaseError, \</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yumexBase.py:881:
                   raise
yum.Errors.YumBaseError, errmsg</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yumexBase.py:885:
               raise yum.Errors.YumBaseError,
errmsg</font></tt>
<br><tt><font size=1>Binary file /usr/lib/python2.3/site-packages/yumex/yumexBase.pyc
matches</font></tt>
<br><tt><font size=1>/usr/lib/python2.3/site-packages/yumex/yum24XBase.py:44:
       InstallError = UpdateError = yum.Errors.YumBaseError</font></tt>
<br>
<br><tt><font size=2>Line #'s included.</font></tt>
<br>
<br><tt><font size=2>Thanks,</font></tt>
<br><tt><font size=2>Joe</font></tt>
<br><tt><font size=2><br>
> <br>
> (or if you have python 2.4, use python2.4 instead of course).<br>
> <br>
> Thanks,<br>
> Dan<br>
> <br>
> <br>
> > <br>
> > > The versions of the<br>
> > > yum python libraries are a bit confusing here; and that's
probably<br>
> > where<br>
> > > the error is coming from.  It appears that an unexpected
error is<br>
> > > getting thrown, and we need to catch that error.  However,
I'm not<br>
> > sure<br>
> > > where exactly it's coming from to catch it.  Can you
try to get this<br>
> > > error again and then paste in about 10 lines of code from
around the<br>
> > > Line # in PackageJob.py that this backtrace comes from?
(ie, line<br>
> > 548<br>
> > > here), and mark the line numbers too? <br>
> > <br>
> >     537             try:
<br>
> >     538              
  base.doSackSetup(archlist) <br>
> >     539             except
yum.Errors.RepoError, exc: <br>
> >     540              
  raise DepError(str(exc)) <br>
> >     541 <br>
> >     542             for
dep in srpm.requiresList(): <br>
> >     543              
  if dep.startswith("rpmlib("): <br>
> >     544              
      continue <br>
> >     545              
  if use_repomd: <br>
> >     546              
      try: <br>
> >     547              
          pkg = base.returnPackageByDep(dep) <br>
> >     548              
      except repomd.mdErrors.PackageSackError,<br>
> > exc: <br>
> >     549              
          raise DepError(str(exc)) <br>
> >     550              
  else: <br>
> >     551              
      try: <br>
> >     552              
          pkg = base.returnPackageByDep(dep) <br>
> >     553              
      except yum.Errors.PackageSackError, exc: <br>
> >     554              
          raise DepError(str(exc)) <br>
> >     555              
      except yum.Errors.YumBaseError, exc: <br>
> >     556              
          raise DepError(str(exc)) <br>
> >     557         except DepError,
exc: <br>
> >     558             self._last_depsolve_error
= str(exc) <br>
> >     559             print
"%s (%s/%s): Depsolve Error: %s" %<br>
> > (self.uid, self.package, arch, str(exc)) <br>
> >     560             success
= False <br>
> > <br>
> > > <br>
> > > The fix you posted for this hunk isn't the "correct"
fix; <br>
> > <br>
> > Actually, it wasn't intended to "fix" the (YumBaseError)
problem  <br>
> > itself -- rather it was just intended to provide us with a means
by  <br>
> > which we'd be able to "recover* from the negative effects
of the  <br>
> > problem, which was a plague-server that wouldn't allow us to
*kill*  <br>
> > the associated buildjob because the buildjob wasn't in "waiting"
 <br>
> > state -- it was in "depsolve" which is where it got
stuck. Anyway,  <br>
> > recycling the plague-server did not help -- it just kept restarting
 <br>
> > the buildjob which just kept failing in the same place even after
we <br>
> > downloaded the missing package (fuse-devel) to the yum repo and
ran <br>
> > the createrepo command in-between plague-server restarts. <br>
> > <br>
> > > that would be<br>
> > > to catch the exception and to re-throw it as a DepSolveError
as is<br>
> > done<br>
> > > for the other 'execpt' blocks around there.<br>
> > > <br>
> > > Cheers,<br>
> > > Dan<br>
> > > <br>
> > > > <br>
> > > > ---- PATCH ----    <br>
> > > > <br>
> > > > Here's the patch that resolved the above 2 problems
for us:  <br>
> > > >   <br>
> > > > <br>
> > > > <br>
> > > > ----- REQUEST ---- <br>
> > > > <br>
> > > > Can someone please review it... especially the fix
to PROBLEM # 2,<br>
> > > > that could potentially be masking a bigger problem..
  <br>
> > > > <br>
> > > > Here's the code for your convenience (...these are
the updates we<br>
> > made<br>
> > > > to the _latest_ version of PackageJob.py): <br>
> > > > <br>
> > > > $ cd /usr/share/plague/server <br>
> > > > $ diff PackageJob.py PackageJob.py.working <br>
> > > > 513c513 <br>
> > > > <              
  base.log = logger.Logger(threshold=threshold,<br>
> > > > file_object=sys.stdout) <br>
> > > > --- <br>
> > > > >              
  base.log = Logger(threshold=threshold,<br>
> > > > file_object=sys.stdout) <br>
> > > > 698c698 <br>
> > > > <         if self._curstage
== 'waiting': <br>
> > > > --- <br>
> > > > >         if self._curstage
in ['waiting', 'depsolve']: <br>
> > > > <br>
> > > > <br>
> > > > Thanks, <br>
> > > >   Joe<br>
> > > > --<br>
> > > > Fedora-buildsys-list mailing list<br>
> > > > Fedora-buildsys-list@redhat.com<br>
> > > > https://www.redhat.com/mailman/listinfo/fedora-buildsys-list<br>
> > > <br>
> > > --<br>
> > > Fedora-buildsys-list mailing list<br>
> > > Fedora-buildsys-list@redhat.com<br>
> > > https://www.redhat.com/mailman/listinfo/fedora-buildsys-list<br>
> > --<br>
> > Fedora-buildsys-list mailing list<br>
> > Fedora-buildsys-list@redhat.com<br>
> > https://www.redhat.com/mailman/listinfo/fedora-buildsys-list<br>
> <br>
> --<br>
> Fedora-buildsys-list mailing list<br>
> Fedora-buildsys-list@redhat.com<br>
> https://www.redhat.com/mailman/listinfo/fedora-buildsys-list<br>
</font></tt>