On Apr 14, 2008, at 3:34 PM, Per Øyvind Karlsen wrote:
> På Mandag 14 april 2008 , 19:52:30 skrev Per Øyvind Karlsen:
>> På Mandag 14 april 2008 , 18:50:07 skrev Per Øyvind Karlsen:
>>> See attachment for more info, reproducer found at
>>> ftp://ftp.uninett.no/pub/linux/MandrivaLinux/devel/cooker/x86_64/
>>> media/ma
>>> in /release/ .
>>
>> updated running with --rpmdsdebug
>
> grf, here's the correct one
>
Um, how was the drakxtools-curses-10.29-1mdv2008.1.x86_64.rpm
package produced?
Every modern version of rpm attempts to insure that dependencies
are pre-sorted so that binary, rather than linear, search can be used.
Now I find that one of the packages in your segfault has unsorted
requires:
$ rpm -qp --requires drakxtools-curses-10.29-1mdv2008.1.x86_64.rpm
warning: drakxtools-curses-10.29-1mdv2008.1.x86_64.rpm: Header V3 DSA
signature: NOKEY, key ID 26752624
perl-base >= 2:5.8.6-1mdk
urpmi >= 4.8.23
usermode-consoleonly >= 1.44-4mdk
perl-Locale-gettext >= 1.05-4mdv2007
module-init-tools
drakxtools-backend = 10.29-1mdv2008.1
drakx-net-text
rpmlib(VersionedDependencies) <= 3.0.3-1
/bin/sh
/bin/sh
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
perl-base
perl(Config)
perl(Curses::UI)
perl(Libconf)
perl(Libconf::Glueconf::NUT::Ups_conf)
perl(POSIX)
$ rpm -qp --qf '%{RPMVERSION}' drakxtools-
curses-10.29-1mdv2008.1.x86_64.rpm
warning: drakxtools-curses-10.29-1mdv2008.1.x86_64.rpm: Header V3 DSA
signature: NOKEY, key ID 26752624
4.4.2.3-rc1
I'm not at all surprised that rpm-5.1 has unusual behavior with this
package, including segfaults,
when fed something that claims to be an rpm package but isn't.
Sure I can explicitly add checks to verify if data is sorted. That kinda
misses the point. Linearly searching unsorted data is S-L-O-O-O-O-W,
and adding a sort when loading data has never been necessary in rpm
before now,
and a sort while loading dependency sets is implemented in no rpm
version that I'm aware of.
73 de Jeff
Received on Tue Apr 15 00:41:37 2008