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