Enabled 'particle-install' option breaks upgrade

Bug #1071000 reported by Lukasz Kies
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
poldek
New
Undecided
Unassigned
PLD Linux
New
Undecided
Unassigned

Bug Description

Enabled 'particle-install', which is on by default on Th, breaks upgrade using current main, ready and test repository.
Using '--test' shows that everything is ok and there will be no errors.

poldek:/all-avail> upgrade * --test
Processing dependencies...
SysVinit-tools-2.88-7.x86_64 obsoleted by SysVinit-tools-2.88-9.x86_64
coreutils-8.16-1.x86_64 obsoleted by coreutils-8.19-1.x86_64
libuuid-2.21.2-3.x86_64 obsoleted by libuuid-2.22.1-1.x86_64
libblkid-2.21.2-3.x86_64 obsoleted by libblkid-2.22.1-1.x86_64
util-linux-2.21.2-3.x86_64 obsoleted by util-linux-2.22.1-1.x86_64
eject-2.1.5-4.x86_64 obsoleted by util-linux-2.22.1-1.x86_64
libmount-2.21.2-3.x86_64 obsoleted by libmount-2.22.1-1.x86_64
mount-2.21.2-3.x86_64 obsoleted by mount-2.22.1-1.x86_64
fsck-2.21.2-3.x86_64 obsoleted by fsck-2.22.1-1.x86_64
There are 8 packages to install, 9 to remove:
I SysVinit-tools-2.88-9.x86_64 coreutils-8.19-1.x86_64 fsck-2.22.1-1.x86_64 libblkid-2.22.1-1.x86_64 libmount-2.22.1-1.x86_64 libuuid-2.22.1-1.x86_64
I mount-2.22.1-1.x86_64 util-linux-2.22.1-1.x86_64
R SysVinit-tools-2.88-7.x86_64 coreutils-8.16-1.x86_64 eject-2.1.5-4.x86_64 fsck-2.21.2-3.x86_64 libblkid-2.21.2-3.x86_64 libmount-2.21.2-3.x86_64
R libuuid-2.21.2-3.x86_64 mount-2.21.2-3.x86_64 util-linux-2.21.2-3.x86_64
This operation will use 2.0MB of disk space.
Need to get 5.8MB of archives (231.6KB to download).

poldek:/all-avail> upgrade *
Processing dependencies...
SysVinit-tools-2.88-7.x86_64 obsoleted by SysVinit-tools-2.88-9.x86_64
util-linux-2.21.2-3.x86_64 obsoleted by util-linux-2.22.1-1.x86_64
coreutils-8.16-1.x86_64 obsoleted by util-linux-2.22.1-1.x86_64
eject-2.1.5-4.x86_64 obsoleted by util-linux-2.22.1-1.x86_64
error: fileutils is required by installed rc-scripts-0.4.5.4-2.x86_64, give up
Installing set #2
Processing dependencies...
coreutils-8.16-1.x86_64 obsoleted by coreutils-8.19-1.x86_64
  orphaned gksu-2.0.2-2.x86_64 marks util-linux-2.22.1-1.x86_64 (cap /bin/su)
   util-linux-2.21.2-3.x86_64 obsoleted by util-linux-2.22.1-1.x86_64
   eject-2.1.5-4.x86_64 obsoleted by util-linux-2.22.1-1.x86_64
libblkid-2.21.2-3.x86_64 obsoleted by libblkid-2.22.1-1.x86_64
libmount-2.21.2-3.x86_64 obsoleted by libmount-2.22.1-1.x86_64
fsck-2.21.2-3.x86_64 obsoleted by fsck-2.22.1-1.x86_64
libuuid-2.21.2-3.x86_64 obsoleted by libuuid-2.22.1-1.x86_64
   util-linux-2.22.1-1.x86_64 marks SysVinit-tools-2.88-9.x86_64 (cap SysVinit-tools >= 2.88-9)
    SysVinit-tools-2.88-7.x86_64 obsoleted by SysVinit-tools-2.88-9.x86_64
There are 7 packages to install (2 marked by dependencies), 8 to remove:
I coreutils-8.19-1.x86_64 fsck-2.22.1-1.x86_64 libblkid-2.22.1-1.x86_64 libmount-2.22.1-1.x86_64 libuuid-2.22.1-1.x86_64
D SysVinit-tools-2.88-9.x86_64 util-linux-2.22.1-1.x86_64
R SysVinit-tools-2.88-7.x86_64 coreutils-8.16-1.x86_64 eject-2.1.5-4.x86_64 fsck-2.21.2-3.x86_64 libblkid-2.21.2-3.x86_64 libmount-2.21.2-3.x86_64
R libuuid-2.21.2-3.x86_64 util-linux-2.21.2-3.x86_64
This operation will use 2.0MB of disk space.
Need to get 5.5MB of archives.
Proceed? [Y/n] y
Executing sudo /bin/rpm --upgrade -vh --root /...
error: Failed dependencies:
 libmount = 2.21.2-3 is needed by (installed) mount-2.21.2-3.x86_64
Installing set #3
Processing dependencies...
mount-2.21.2-3.x86_64 obsoleted by mount-2.22.1-1.x86_64
mount-2.22.1-1.x86_64 marks libmount-2.22.1-1.x86_64 (cap libmount = 2.22.1-1)
 libmount-2.21.2-3.x86_64 obsoleted by libmount-2.22.1-1.x86_64
 libmount-2.22.1-1.x86_64 marks libblkid-2.22.1-1.x86_64 (cap libblkid = 2.22.1-1)
  libblkid-2.21.2-3.x86_64 obsoleted by libblkid-2.22.1-1.x86_64
    greedy upgrade util-linux-2.21.2-3.x86_64 to 2.22.1-1.x86_64 (unresolved libblkid = 2.21.2-3)
     util-linux-2.21.2-3.x86_64 obsoleted by util-linux-2.22.1-1.x86_64
     coreutils-8.16-1.x86_64 obsoleted by util-linux-2.22.1-1.x86_64
     eject-2.1.5-4.x86_64 obsoleted by util-linux-2.22.1-1.x86_64
error: fileutils is required by installed rc-scripts-0.4.5.4-2.x86_64, give up
error: libmount-2.22.1-1.x86_64: req libblkid.so.1()(64bit) not found
error: libmount-2.22.1-1.x86_64: req libblkid.so.1(BLKID_1.0)(64bit) not found
error: libmount-2.22.1-1.x86_64: req libblkid.so.1(BLKID_2.15)(64bit) not found
error: libmount-2.22.1-1.x86_64: req libblkid.so.1(BLKID_2.17)(64bit) not found
error: mount-2.22.1-1.x86_64: req libmount.so.1(MOUNT_2.22)(64bit) not found
There were errors

Revision history for this message
Lukasz Kies (kiesiu) wrote :
Revision history for this message
Marcin Banasiak (megabajt) wrote :

Could you reproduce it and attach log from running "POLDEK_TRACE=1 poldek"?

Revision history for this message
Lukasz Kies (kiesiu) wrote :

Attached log with POLDEK_TRACE=1
Cut off loading packages list.

Revision history for this message
Cactus (uzi18) wrote :

in function: int i3_do_poldek_ts_install(struct poldek_ts *ts) (install.c)

...
    /* tests make sense on whole set only */
    else if (ts->getop_v(ts, POLDEK_OP_TEST, POLDEK_OP_RPMTEST, 0))
        ts->setop(ts, POLDEK_OP_PARTICLE, 0);
...

So what is best? To add option for install command --at-once or to change behavior of test? ;)

Revision history for this message
Paweł Sikora (pluto-pld-linux) wrote :

i'm expecting the same behaviour of 'install' and 'install --test' and this what we currently see is a bug in particle-install-split-algorithm.

Revision history for this message
Cactus (uzi18) wrote :

Megabajt: what do You think about it?

Revision history for this message
Marcin Banasiak (megabajt) wrote :

I think that it's not a problem with --test mode, but with depsolver.

In set #1 poldek should mark coreutils-8.19-1.x86_64,

In set #2 it doesn't mark mount for upgrade whereas it should. Unfortunately, I can't reproduce this locally, but I see in trace output that poldek claims that libmount is satisfied by db:

PROCESS mount-2.21.2-3.x86_64 as ORPHAN
: i3_process_orphan_requirements() mount-2.21.2-3.x86_64 as ORPHAN (nreqs=1)
: process_orphan_req() mount-2.21.2-3.x86_64, req: libmount = 2.21.2-3 (libmount = 2.21.2-3)
: i3_find_req() libmount = 2.21.2-3 not found (0 candidate(s), best=none)
: - satisfied by db
  libmount = 2.21.2-3: satisfied by db
: i3_process_orphan() END PROCESSING mount-2.21.2-3.x86_64 as ORPHAN

whereas it shouldn't according to i3_pkgdb_match_req() ("libmount = 2.21.2-3" is in ictx->unset and should be excluded from results). Below is shown how correct trace should look like:

PROCESS mount-2.21.2-3.x86_64 as ORPHAN
: i3_process_orphan_requirements() mount-2.21.2-3.x86_64 as ORPHAN (nreqs=1)
: process_orphan_req() mount-2.21.2-3.x86_64, req: libmount = 2.21.2-3 (libmount = 2.21.2-3)
: try_to_upgrade_orphan() mount-2.21.2-3.i686 req: libmount = 2.21.2-3 (satisfied=no)
: select_successor() mount-2.21.2-3.x86_64 (c=1)
: - 0. mount-2.22.1-1.x86_64 -> color 2, score 110
: select_successor() RET mount-2.22.1-1.x86_64 (for mount-2.21.2-3.x86_64)
: find_successor() successor of mount-2.21.2-3.x86_64 is mount-2.22.1-1.x86_64, marked=no
: try_to_upgrade_orphan() - mount-2.22.1-1.x86_64: upgrading orphan (upgrade resolves req)

Revision history for this message
Cactus (uzi18) wrote :

kiesiu : could You provide us rpm database folder with this problem to reproduce?

Revision history for this message
Lukasz Kies (kiesiu) wrote :
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.