[Yum-devel] [PATCH] doUtilBuildTransaction: catch _rpmdb_warn_checks errors. BZ 735234

James Antill james at fedoraproject.org
Tue Feb 14 16:58:03 UTC 2012


On Tue, 2012-02-14 at 16:54 +0100, Zdeněk Pavlas wrote:
> ---
>  utils.py |    8 +++++++-
>  1 files changed, 7 insertions(+), 1 deletions(-)

 Actually, NAK ... I thought this was just porting a fix from __init__
into utils, but it's not.

 Given that I can't think of a reason for _rpmdb_warn_checks to throw an
exception (any reason a caller would want it too) ... I think we should
just catch the exception inside _rpmdb_warn_checks itself, and thus. fix
all callers (what I tried to say the BZ, but probably not well :).

> diff --git a/utils.py b/utils.py
> index 08b09fb..f0f87a3 100755
> --- a/utils.py
> +++ b/utils.py
> @@ -415,7 +415,13 @@ class YumUtilBase(YumBaseCli):
>                  self.logger.critical(prefix, msg.replace('\n', '\n' + prefix2nd))
>              if not self.conf.skip_broken:
>                  self.verbose_logger.info(_(" You could try using --skip-broken to work around the problem"))
> -            if not self._rpmdb_warn_checks(out=self.verbose_logger.info, warn=False):
> +            try:
> +                probs = self._rpmdb_warn_checks(out=self.verbose_logger.info, warn=False)
> +            except YumBaseError, e:
> +                # This is mainly for PackageSackError from rpmdb.
> +                self.verbose_logger.info(_(" Yum checks failed: %s"), exception2msg(e))
> +                probs = []
> +            if not probs:
>                  self.verbose_logger.info(_(" You could try running: rpm -Va --nofiles --nodigest"))
>              if self.unlock(): return 200
>              return 1




More information about the Yum-devel mailing list