Stefan Br�ns changed bug 953130
What Removed Added
CC   stefan.bruens@rwth-aachen.de

Comment # 12 on bug 953130 from
It seems to be sufficient to install either kernel-devel or
kernel-default-devel while having another version thereof installed:

$> LANG=C zypper se -si kernel
Loading repository data...
Reading installed packages...

S | Name                 | Type    | Version      | Arch   | Repository       
--+----------------------+---------+--------------+--------+------------------
i | kernel-default       | package | 4.8.4-1.2    | x86_64 | (System Packages)
i | kernel-default       | package | 4.8.3-1.1    | x86_64 | (System Packages)
i | kernel-default       | package | 4.8.6-1.1    | x86_64 | repo-oss         
i | kernel-default-devel | package | 4.8.4-1.2    | x86_64 | (System Packages)
i | kernel-default-devel | package | 4.8.3-1.1    | x86_64 | (System Packages)
i | kernel-default-devel | package | 4.8.6-1.1    | x86_64 | repo-oss         
i | kernel-devel         | package | 4.8.4-1.2    | noarch | (System Packages)
i | kernel-devel         | package | 4.8.4-1.1    | noarch | (System Packages)
i | kernel-devel         | package | 4.8.3-1.1    | noarch | (System Packages)
i | kernel-devel         | package | 4.8.6-1.1    | noarch | repo-oss         
i | kernel-firmware      | package | 20161005-1.1 | noarch | repo-oss         
i | kernel-macros        | package | 4.8.6-1.1    | noarch | repo-oss         
i | kernel-source        | package | 4.8.4-1.2    | noarch | (System Packages)
i | kernel-source        | package | 4.8.4-1.1    | noarch | (System Packages)
i | kernel-source        | package | 4.8.3-1.1    | noarch | (System Packages)
i | kernel-source        | package | 4.8.6-1.1    | noarch | repo-oss         
i | nfs-kernel-server    | package | 1.3.4-3.1    | x86_64 | repo-oss 

for p in kernel-default kernel-default-devel ; do
  zypper in --force $p
; done

$> sudo cat /var/log/zypper.log | egrep  'Checking for file|took
[0-9]{3,9}|candidates now|\.rpm from' 

2016-11-06 22:31:05 <1> pebbles.site(20719) [zypper] Summary.cc(readPool):281
package update candidates: 0
2016-11-06 22:31:05 <1> pebbles.site(20719) [zypper] Summary.cc(readPool):281
product update candidates: 0
2016-11-06 22:31:07 <1> pebbles.site(20719) [zypp++]
MediaSetAccess.cc(provide):203 Going to try to provide  file
./suse/x86_64/kernel-default-4.8.6-1.1.x86_64.rpm from media number 1
2016-11-06 22:31:54 <1> pebbles.site(20719) [zypp++]
MediaSetAccess.cc(releaseFile):85 Going to release file
./suse/x86_64/kernel-default-4.8.6-1.1.x86_64.rpm from media number 1
2016-11-06 22:31:54 <1> pebbles.site(20719) [zypp]
TargetImpl.commitFindFileConflicts.cc(commitFindFileConflicts):127 Checking for
file conflicts in 1 new packages...
2016-11-06 22:31:55 <1> pebbles.site(20719) [libsolv++] PoolImpl.cc(logSat):119
filemap creation took 175 ms
2016-11-06 22:31:55 <1> pebbles.site(20719) [libsolv++] PoolImpl.cc(logSat):119
alias processing took 147 ms
2016-11-06 22:31:55 <1> pebbles.site(20719) [libsolv++] PoolImpl.cc(logSat):119
raw candidates: 15615, pruning
2016-11-06 22:31:55 <1> pebbles.site(20719) [libsolv++] PoolImpl.cc(logSat):119
candidates now: 26
2016-11-06 22:31:55 <1> pebbles.site(20719) [libsolv++] PoolImpl.cc(logSat):119
file conflict detection took 398 ms

2016-11-06 22:33:26 <1> pebbles.site(3976) [libsolv++] PoolImpl.cc(logSat):119
addfileprovides took 113 ms
2016-11-06 22:33:26 <1> pebbles.site(3976) [libsolv++] PoolImpl.cc(logSat):119
pkg rule creation took 139 ms
2016-11-06 22:33:26 <1> pebbles.site(3976) [libsolv++] PoolImpl.cc(logSat):119
solver_solve took 171 ms
2016-11-06 22:33:27 <1> pebbles.site(3976) [zypper] Summary.cc(readPool):281
package update candidates: 0
2016-11-06 22:33:27 <1> pebbles.site(3976) [zypper] Summary.cc(readPool):281
product update candidates: 0
2016-11-06 22:33:30 <1> pebbles.site(3976) [zypp++]
MediaSetAccess.cc(provide):203 Going to try to provide  file
./suse/x86_64/kernel-default-devel-4.8.6-1.1.x86_64.rpm from media number 1
2016-11-06 22:33:33 <1> pebbles.site(3976) [zypp++]
MediaSetAccess.cc(releaseFile):85 Going to release file
./suse/x86_64/kernel-default-devel-4.8.6-1.1.x86_64.rpm from media number 1
2016-11-06 22:33:33 <1> pebbles.site(3976) [zypp]
TargetImpl.commitFindFileConflicts.cc(commitFindFileConflicts):127 Checking for
file conflicts in 1 new packages...
2016-11-06 22:33:34 <1> pebbles.site(3976) [libsolv++] PoolImpl.cc(logSat):119
filemap creation took 111 ms
2016-11-06 22:33:34 <1> pebbles.site(3976) [libsolv++] PoolImpl.cc(logSat):119
alias processing took 165 ms
2016-11-06 22:33:34 <1> pebbles.site(3976) [libsolv++] PoolImpl.cc(logSat):119
raw candidates: 51391, pruning
2016-11-06 22:33:34 <1> pebbles.site(3976) [libsolv++] PoolImpl.cc(logSat):119
candidates now: 12964
2016-11-06 22:33:56 <1> pebbles.site(3976) [libsolv++] PoolImpl.cc(logSat):119
file info fetching took 22310 ms
2016-11-06 22:33:56 <1> pebbles.site(3976) [libsolv++] PoolImpl.cc(logSat):119
file conflict detection took 22594 ms



So after the "pruning" step (whatever that is), there are a lot of candidates
left, each triggering a call to rpm_iterate_filelist.

The calls to rpm_iterate_filelist are the actually expensive part. Maybe there
should be an rpm_iterate_dirlist there, fetching directory names is
significantly less expensive than fetching info for all files (assuming there
are far less directories than files), and file conflicts can only happen if the
sets of directories have a non-empty intersection.

Another point that may be relevant here, at least the kernel-default-devel
packages actually *have* a conflicting file - /usr/src/linux-obj/x86_64/default
is a symlink to ./default, which gets modified in the postinstall scriptlet.


You are receiving this mail because: