> On Feb 23, 2017, at 3:36 PM, Jakub Bogusz <[email protected]> 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
_______________________________________________
pld-devel-en mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-devel-en