pld rpm 5.4.17
Jeffrey Johnson
n3npq at me.com
Fri Feb 24 01:15:22 CET 2017
> On Feb 23, 2017, at 3:36 PM, Jakub Bogusz <qboosh at pld-linux.org> wrote:
>
> On Thu, Feb 23, 2017 at 01:43:14PM -0500, Jeffrey Johnson wrote:
>> This one is left though:
>>
>>> error: db3: header #187105280 cannot be loaded -- skipping.
>>> error: db3: header #4127850496 cannot be loaded -- skipping.
>>
>> How to check what these "headers" mean?
>> (old, unsupported keys? some old packages with missing fields which are
>> now required?)
>> The error message is printed on a headerCopyLoad() failure.
>>
>> The failure is usually an indication of header damage of some sort, not missing fields now required.
>>
>> The numbers are primary keys into Packages printed in in decimal.
>>
>> The values appear to be in the wrong-endian order when converted to hex
>> 0xB270000
>> 0xF60A0000
>>
>> You can try finding the header by doing, say, rpm -q ???querybynumber 0xB270000
>> (or its reverse: its unclear what order).
>
> Same result for bigger values, no result after swapping bytes:
>
> -bash-4.4# rpm -q --querybynumber 0xF60A0000
> error: rpmdb: header #4127850496 cannot be loaded -- skipping.
> -bash-4.4# rpm -q --querybynumber 0x00000AF6
> -bash-4.4# rpm -q --querybynumber 0xB270000
> error: rpmdb: header #187105280 cannot be loaded -- skipping.
> -bash-4.4# rpm -q --querybynumber 0x0000270B
> -bash-4.4#
>
So at least simply reproducible with —querybynumber ;-)
If you just need a fix, db_dump will give you {KEY, VALUE} pairs in hex.
Find the 2 {KEY,VALUES} and delete the 2 occurrences of 2 lines of hex in a text editor.
Feed the result to db_load to recreate Packages.
rpm —rebuild will recreate the indices.
If you want me to take a look, tar up /var/lib/rpm/{DB_CONFIG,Packages} and give me a URL.
hth
73 de Jeff
More information about the pld-devel-en
mailing list