Bug 717089

Summary: pylorax.yumhelper.ERROR: yum transaction error: [u'ERROR with transaction check vs depsolve:'
Product: [Fedora] Fedora Reporter: John Reiser <jreiser>
Component: loraxAssignee: Martin Gracik <mgracik>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: akozumpl, anaconda-maint-list, bcl, dcantrell, dmach, mgracik
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-07-18 23:06:19 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 491479    
Attachments:
Description Flags
patch forcing reinitialization of yum object in pungi none

Description John Reiser 2011-06-27 23:34:37 UTC
Description of problem: pungi fails to compose a DVD of today's rawhide, due to a problem in pylorax.


Version-Release number of selected component (if applicable):
lorax-0.7-1.fc16.x86_64
pungi-2.6-1.fc16.noarch
yum-3.4.2-2.fc16.noarch


How reproducible: every time (three times so far)


Steps to Reproduce:
1.
set -x

VERSION=16
DESTDIR=/ext4/Fedora$VERSION
ARCH=x86_64; export ARCH

rm -rf $DESTDIR/work/$ARCH
rm -rf $DESTDIR/$VERSION/$ARCH

mkdir -p      /dev/shm/pungi-$$
restorecon    /dev/shm/pungi-$$  # change from user_tmpfs_t to device_t
export TMPDIR=/dev/shm/pungi-$$

/usr/sbin/setenforce 0

export LC_ALL=C

/usr/bin/pungi -c rawhide-fedora.ks \
        --destdir=$DESTDIR --name Fedora --ver $VERSION --nosource

2.
3.
  
Actual results: pungi aborts with:
  [snip]
yum.verbose.YumBase.INFO_2: Running Transaction Check
pylorax.yumhelper.ERROR: yum transaction error: [u'ERROR with transaction check vs depsolve:', 'eclipse-rse >= 3.2.1 is needed by eclipse-cdt-1:8.0.0-1.fc16.x86_64', 'fedora-release conflicts with generic-release-16-0.1.noarch', 'libkdcraw.so.9()(64bit) is needed by kipi-plugins-1.9.0-2.fc16.x86_64', 'libkexiv2.so.9()(64bit) is needed by kipi-plugins-1.9.0-2.fc16.x86_64', 'libkdcraw.so.9()(64bit) is needed by digikam-1.9.0-1.fc15.x86_64', 'libkexiv2.so.9()(64bit) is needed by digikam-1.9.0-1.fc15.x86_64', 'libmarblewidget.so.11()(64bit) is needed by digikam-1.9.0-1.fc15.x86_64', 'libquvi.so.0()(64bit) is needed by totem-pl-parser-2.32.5-1.fc16.x86_64', 'libquvi.so.0(VER_0.1.0)(64bit) is needed by totem-pl-parser-2.32.5-1.fc16.x86_64', 'libkdcraw.so.9()(64bit) is needed by kipi-plugins-libs-1.9.0-2.fc16.x86_64', 'libkexiv2.so.9()(64bit) is needed by kipi-plugins-libs-1.9.0-2.fc16.x86_64', 'libkexiv2.so.9()(64bit) is needed by kdeplasma-addons-4.6.80-1.fc16.x86_64', 'fedora-bookmarks conflicts with astronomy-bookmarks-1-7.fc15.noarch', 'rsyslog conflicts with sysklogd-1.5-10.fc15.x86_64', 'syslog-ng conflicts with sysklogd-1.5-10.fc15.x86_64', 'gecko-libs(x86-64) = 2.0.1 is needed by gjs-1.29.0-1.fc16.x86_64', 'libkdcraw.so.9()(64bit) is needed by digikam-libs-1.9.0-1.fc15.x86_64', 'libkexiv2.so.9()(64bit) is needed by digikam-libs-1.9.0-1.fc15.x86_64', 'libmarblewidget.so.11()(64bit) is needed by digikam-libs-1.9.0-1.fc15.x86_64', 'fedora-logos conflicts with generic-logos-15.0.0-1.fc16.noarch', u'Please report this error at http://yum.baseurl.org/report']


Expected results: pungi finishes successfully, composing DVD of rawhide


Additional info:

Comment 1 Martin Gracik 2011-06-28 06:33:41 UTC
This means there are packages missing in the rawhide repo. This happens sometimes with rawhide repos.

Comment 2 John Reiser 2011-06-29 14:22:29 UTC
The explanation of Comment #1 seems insufficient for at least two parts of the complaint from yum.  Please re-open this bugzilla report.

Today's complaint includes these 4 requirements:
-----
'/lib64/libparted.so.0 is needed by libguestfs-1:1.11.12-1.fc16.x86_64'
'libparted.so.0()(64bit) is needed by libvirt-0.9.2-2.fc16.x86_64'
'libparted.so.0()(64bit) is needed by pyparted-3.6-1.fc16.x86_64'
'libparted.so.0()(64bit) is needed by udisks-1.0.2-4.fc15.x86_64'
-----
yet parted-3.0-1.fc16.x86_64.rpm is present in /var/cache/pungi/rawhide/packages, and does provide the library:
   $ rpm -q --provides -p parted-3.0-1.fc16.x86_64.rpm
   libparted.so.1()(64bit)  
   parted = 3.0-1.fc16
   parted(x86-64) = 3.0-1.fc16
   $ ls -l parted*
   -rw-r--r--. 1 root root 631780 Feb  9 09:27 parted-2.3-7.fc15.x86_64.rpm
   -rw-r--r--. 1 root root 629948 Jun  5 12:13 parted-2.4-2.fc16.x86_64.rpm
   -rw-r--r--. 2 root root 491548 Jun 28 14:04 parted-3.0-1.fc16.x86_64.rpm
Those two earlier parted-*.rpm packages also provide the library.

Today's complaint also has:
-----
'syslog-ng conflicts with sysklogd-1.5-10.fc15.x86_64'
'rsyslog conflicts with sysklogd-1.5-10.fc15.x86_64'
'fedora-release conflicts with generic-release-16-0.1.noarch'
'fedora-logos conflicts with generic-logos-15.0.0-1.fc16.noarch'
'fedora-bookmarks conflicts with astronomy-bookmarks-1-7.fc15.noarch'
-----
and these look peculiar because the first component name on each line does not designate an actual object.  How did "rsyslog" with no qualifiers get there?  Are these "synthetic" packages created by lorax?

The .ks I am using is fedora-install-fedora.ks, but with the [sole] repo:
   repo --name=rawhide    --baseurl=http://download.fedora.redhat.com/pub/fedora/linux/development/rawhide/$basearch/os
which should avoid any delays ("version skew") in the mirror system.

Comment 3 John Reiser 2011-06-29 14:53:55 UTC
Running the whole pungi process under "strace -f -e trace=file" and then "grep parted" shows these references to parted:
-----
8728  stat("/var/cache/pungi/rawhide/packages/parted-3.0-1.fc16.x86_64.rpm", {st_mode=S_IFREG|0644, st_size=491548, ...}) = 0
8728  stat("/var/cache/pungi/rawhide/packages/parted-3.0-1.fc16.x86_64.rpm", {st_mode=S_IFREG|0644, st_size=491548, ...}) = 0
8728  open("/var/cache/pungi/rawhide/packages/parted-3.0-1.fc16.x86_64.rpm", O_RDONLY) = 20
8728  open("/var/cache/pungi/rawhide/packages/parted-3.0-1.fc16.x86_64.rpm", O_RDONLY) = 20
8728  stat("/var/cache/pungi/rawhide/packages/parted-3.0-1.fc16.x86_64.rpm", {st_mode=S_IFREG|0644, st_size=491548, ...}) = 0
8728  stat("/ext4/Fedora16/16/x86_64/os/Packages/parted-3.0-1.fc16.x86_64.rpm", 0x7fff4fc7d590) = -1 ENOENT (No such file or directory)
8728  lstat("/ext4/Fedora16/16/x86_64/os/Packages/parted-3.0-1.fc16.x86_64.rpm", 0x7fff4fc7d590) = -1 ENOENT (No such file or directory)
8728  link("/var/cache/pungi/rawhide/packages/parted-3.0-1.fc16.x86_64.rpm", "/ext4/Fedora16/16/x86_64/os/Packages/parted-3.0-1.fc16.x86_64.rpm") = 0
8728  stat("parted-3.0-1.fc16.x86_64.rpm", 0x7fff4fc7ce80) = -1 ENOENT (No such file or directory)
8728  stat("/ext4/Fedora16/16/x86_64/os/Packages/parted-3.0-1.fc16.x86_64.rpm", {st_mode=S_IFREG|0644, st_size=491548, ...}) = 0
8928  stat("/ext4/Fedora16/16/x86_64/os/Packages/parted-3.0-1.fc16.x86_64.rpm", {st_mode=S_IFREG|0644, st_size=491548, ...}) = 0
8928  open("/ext4/Fedora16/16/x86_64/os/Packages/parted-3.0-1.fc16.x86_64.rpm", O_RDONLY) = 8
8928  stat("/ext4/Fedora16/16/x86_64/os/Packages/parted-3.0-1.fc16.x86_64.rpm", {st_mode=S_IFREG|0644, st_size=491548, ...}) = 0
8928  stat("/var/cache/pungi/createrepocache/parted-3.0-1.fc16.x86_64.rpm-10edf22db3ce3830b00eab347155c32cebb8592931412f95a4ddfcd0f23a02e0-1795366-1309295062", {st_mode=S_IFREG|0600, st_size=64, ...}) = 0
8928  stat("/var/cache/pungi/createrepocache/parted-3.0-1.fc16.x86_64.rpm-10edf22db3ce3830b00eab347155c32cebb8592931412f95a4ddfcd0f23a02e0-1795366-1309295062", {st_mode=S_IFREG|0600, st_size=64, ...}) = 0
8928  open("/var/cache/pungi/createrepocache/parted-3.0-1.fc16.x86_64.rpm-10edf22db3ce3830b00eab347155c32cebb8592931412f95a4ddfcd0f23a02e0-1795366-1309295062", O_RDONLY) = 8
8928  open("/ext4/Fedora16/16/x86_64/os/Packages/parted-3.0-1.fc16.x86_64.rpm", O_RDONLY) = 8
8728  stat("/var/cache/pungi/rawhide/packages/pyparted-3.6-1.fc16.x86_64.rpm", {st_mode=S_IFREG|0644, st_size=192380, ...}) = 0
8728  stat("/var/cache/pungi/rawhide/packages/pyparted-3.6-1.fc16.x86_64.rpm", {st_mode=S_IFREG|0644, st_size=192380, ...}) = 0
8728  open("/var/cache/pungi/rawhide/packages/pyparted-3.6-1.fc16.x86_64.rpm", O_RDONLY) = 6
8728  open("/var/cache/pungi/rawhide/packages/pyparted-3.6-1.fc16.x86_64.rpm", O_RDONLY) = 6
8728  stat("/var/cache/pungi/rawhide/packages/pyparted-3.6-1.fc16.x86_64.rpm", {st_mode=S_IFREG|0644, st_size=192380, ...}) = 0
8728  stat("/var/cache/pungi/rawhide/packages/parted-3.0-1.fc16.x86_64.rpm", {st_mode=S_IFREG|0644, st_size=491548, ...}) = 0
8728  stat("/var/cache/pungi/rawhide/packages/parted-3.0-1.fc16.x86_64.rpm", {st_mode=S_IFREG|0644, st_size=491548, ...}) = 0
8728  open("/var/cache/pungi/rawhide/packages/parted-3.0-1.fc16.x86_64.rpm", O_RDONLY) = 6
8728  stat("/var/cache/pungi/rawhide/packages/parted-3.0-1.fc16.x86_64.rpm", {st_mode=S_IFREG|0644, st_size=491548, ...}) = 0
8728  stat("/var/cache/pungi/rawhide/packages/pyparted-3.6-1.fc16.x86_64.rpm", {st_mode=S_IFREG|0644, st_size=192380, ...}) = 0
8728  open("/var/cache/pungi/rawhide/packages/pyparted-3.6-1.fc16.x86_64.rpm", O_RDONLY) = 20
8728  stat("/var/cache/pungi/rawhide/packages/parted-3.0-1.fc16.x86_64.rpm", {st_mode=S_IFREG|0644, st_size=491548, ...}) = 0
8728  open("/var/cache/pungi/rawhide/packages/parted-3.0-1.fc16.x86_64.rpm", O_RDONLY) = 20

-----
Note that there are exactly three ENOENT:
   stat("/ext4/Fedora16/16/x86_64/os/Packages/parted-3.0-1.fc16.x86_64.rpm", 0x7fff4fc7d590) = -1 ENOENT (No such file or directory)
   lstat("/ext4/Fedora16/16/x86_64/os/Packages/parted-3.0-1.fc16.x86_64.rpm", 0x7fff4fc7d590) = -1 ENOENT (No such file or directory)
   stat("parted-3.0-1.fc16.x86_64.rpm", 0x7fff4fc7ce80) = -1 ENOENT (No such file or directory)
-----
That last one has no directory name, so perhaps it was done under chdir or chroot?

Comment 4 Ales Kozumplik 2011-06-30 06:21:51 UTC
With pungi pungi-2.6-1.fc16 I am getting:

    yum transaction error: [u'ERROR with rpm_check_debug vs depsolve:', 'fedora-bookmarks conflicts with astronomy-bookmarks-1-7.fc15.noarch', 'rsyslog conflicts with sysklogd-1.5-10.fc15.x86_64', 'syslog-ng conflicts with sysklogd-1.5-10.fc15.x86_64', 'fedora-logos conflicts with generic-logos-15.0.0-1.fc16.noarch', 'fedora-release conflicts with generic-release-16-0.1.noarch', u'Please report this error at http://yum.baseurl.org/report']

This was fixed with by downgrading to pungi-2.5-1.fc15. Jesse, any idea what might be causing this? John, can you try out if this helps?

Note that the lorax version I am running is always the git HEAD.

Comment 5 John Reiser 2011-06-30 14:21:20 UTC
Downgrading
  from pungi-2.6-1.fc16.noarch.rpm
    to pungi-2.5-1.fc15.noarch.rpm
fails differently for me:
-----pungi-2.5-1.fc15
   <<snip>>
running test transaction
Traceback (most recent call last):
  File "/usr/bin/pungi", line 214, in <module>
    main()
  File "/usr/bin/pungi", line 120, in main
    mypungi.doBuildinstall()
  File "/usr/lib/python2.7/site-packages/pypungi/__init__.py", line 793, in doBuildinstall
    workdir=workdir, outputdir=outputdir)
  File "/usr/lib/python2.7/site-packages/pylorax/__init__.py", line 265, in run
    self.installtree.yum.process_transaction(skipbroken)
  File "/usr/lib/python2.7/site-packages/pylorax/yumhelper.py", line 146, in process_transaction
    rpmDisplay=LoraxRpmCallback())
  File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 4988, in processTransaction
    self._doTestTransaction(callback,display=rpmTestDisplay)
  File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 5085, in _doTestTransaction
    raise Errors.YumTestTransactionError, errstring
yum.Errors.YumTestTransactionError: Test Transaction Errors:   file /lib/firmware/phanfw.bin conflicts between attempted installs of netxen-firmware-4.0.534-4.fc15.noarch and linux-firmware-20110601-2.fc16.noarch
-----
whereas the early termination with pungi-2.6-1.fc16 remains similar to the original Description and Comment #4, and does not include anything about netxen-firmware.

Comment 6 Ales Kozumplik 2011-06-30 14:37:05 UTC
What you describe in comment 5 is what I get on my other compose machine where I use fresh rawhide repo. This is just because some packages there are broken at the moment (linux-firmware ?). I prevent this by using a one month old copy of the repo that I do not update, knowing the kind of havoc that irresponsible package maintainers wreak over rawhide after a Fedora release.

Comment 7 John Reiser 2011-06-30 15:10:21 UTC
(In reply to comment #6)
> I prevent this by using a one month old copy of the repo that I do not update

How do you prevent updating of that repo?  (What is your literal command-line invocation of pungi?)

Comment 8 Jesse Keating 2011-06-30 16:34:39 UTC
I believe these are errors in lorax, and not pungi.  There are some packages that are in conflict, and that's what lorax is complaining about.

Comment 9 Jesse Keating 2011-06-30 16:36:36 UTC
The change in 2.5 to 2.6 in pungi is that we now also give lorax the local repo we've gathered or found at topdir to lorax as a source to get packages from.  Maybe this is confusing lorax too much?

Comment 10 Ales Kozumplik 2011-07-01 06:15:49 UTC
Hi Jesse,

(In reply to comment #9)
> The change in 2.5 to 2.6 in pungi is that we now also give lorax the local repo
> we've gathered or found at topdir 

At topdir of what? 

> to lorax as a source to get packages from. 
> Maybe this is confusing lorax too much?

Can the new behavior be disabled? Shouldn't Lorax get precisely those repos that are specified in the pungi kickstart file?

Comment 11 Ales Kozumplik 2011-07-01 06:20:15 UTC
(In reply to comment #7)
> (In reply to comment #6)
> > I prevent this by using a one month old copy of the repo that I do not update
> 
> How do you prevent updating of that repo?  (What is your literal command-line
> invocation of pungi?)

I just have an rsynced copy of the rawhide repo on a nfs drive, taken some time ago, it is now just not possible to make rawhide composes if you always use the latest rawhide (or koji) repos, you end up with what you see in comment 5. I point at this repo from the kickstart config file:

repo --name=local_frozen --baseurl=file:///mnt/cobra02/rh

This is my pungi line:
pungi --destdir=$PUNGI_DIR --nosource -c ${KS} --all-stages

Comment 12 Jesse Keating 2011-07-01 18:04:38 UTC
(In reply to comment #10)
> Hi Jesse,
> 
> (In reply to comment #9)
> > The change in 2.5 to 2.6 in pungi is that we now also give lorax the local repo
> > we've gathered or found at topdir 
> 
> At topdir of what? 

Topdir of the compose, eg where the packages are (pre) gathered.

> 
> > to lorax as a source to get packages from. 
> > Maybe this is confusing lorax too much?
> 
> Can the new behavior be disabled? Shouldn't Lorax get precisely those repos
> that are specified in the pungi kickstart file?

There is a pre-existing legitimate use case where you can use pungi on a pre-gathered repository (and thus an empty kickstart file).  The repo would already exist in the destination path, would already have group data, etc...  This is how the branched images are created each night, and how the anaconda team makes images for rawhide testing.  Pungi adds this repo to the yum object and thus lorax gets it from said object.  Previously this repo was passed along to buildinstall.

Comment 13 Ales Kozumplik 2011-07-07 14:08:26 UTC
Created attachment 511717 [details]
patch forcing reinitialization of yum object in pungi

I used lorax-0.7.1, my proven frozen repo and the git HEAD version of pungi to hit the problem from comment 4. I found the problem to be caused by 0c8b9d268e7411fcf87ea185099b40a9214683e5, "Only init yum if we haven't already". This is because the Pungi.ayum object has already a lot of transaction data in doBuildinstall() and that confuses Lorax (which uses it for its own transaction) later. Attaching a patch against pungi that fixes the issue for me.

Comment 14 Jesse Keating 2011-07-18 23:06:19 UTC
Build done for rawhide with this patch.