Boring in through $ sudo ./rpm -Uvv --replacepkgs --hdrdebug --rpmmidebug python-2.7.2-4-mdv2012.0.i586.rpm with "debug" added in /usr/lib/rpm/macros %_dbi_config_3_Requirename %{_dbi_btconfig} %{?_bt_dupsort} debug the relevant accesses are
--> rpmmiInit(0x8eaa698, Requirename, 0x8f3eaa0[0]="python(abi)") dbi 0x8f34a30 mi 0x8f34920 <-- rpmmiPrune(0x8f34920, 0x8e9bbe0[1], 1) rc 0 h# 4264 --> rpmmiNext(0x8f34920) dbi 0x8f34a30(Requirename) <-- db3copen(0x8f34a30,(nil),0x8f3493c,0x0) dbc 0x8f342d0 0x0 rc 0 <-- db3cget(0x8f34a30,0x8f342d0,0xbfb23178,0xbfb231b0,0x1a) rc -30999 flags: DB_SET key: 0x8f33f18[11] 0x0 "python(abi)" data: (nil)[9620] 0x800<USERMEM> <-- db3cpget(0x8f34a30,0x8f342d0,0xbfb23178,0xbfb23194,0xbfb231b0,0x1a) rc 0 flags: DB_SET key: 0x8f33f18[11] 0x0 "python(abi)" pkey: 0x8f3ea90[4] 0x0 0x4e010000 data: 0xb7444000[9620] 0x800<USERMEM> <-- rpmmiGet(0x8f34a30(Requirename),0x8f342d0,0xbfb23178,0xbfb231b0,0x1a) rc 0 --> h 0x8e9c2d0 ++ 1 headerLoad at header.c:1003 D: Requires: python(abi) = 2.7 YES (added provide) --> rpmmiNext(0x8f34920) dbi 0x8f34a30(Requirename) <-- db3cget(0x8f34a30,0x8f342d0,0xbfb23178,0xbfb231b0,0x11) rc -30999 flags: DB_NEXT_DUP key: 0x8f02108[11] 0x0 "python(abi)" data: (nil)[22812] 0x800<USERMEM> <-- db3cpget(0x8f34a30,0x8f342d0,0xbfb23178,0xbfb23194,0xbfb231b0,0x11) rc 0 flags: DB_NEXT_DUP key: 0x8f02108[11] 0x0 "python(abi)" pkey: 0x8f3ea90[4] 0x0 0xbd030000 data: 0xb61ab000[6784] 0x800<USERMEM> <-- rpmmiGet(0x8f34a30(Requirename),0x8f342d0,0xbfb23178,0xbfb231b0,0x11) rc 0 --> h 0x8e9c2d0 -- 1 miFreeHeader at rpmdb.c:1539 --> h 0x8eaf998 ++ 1 headerLoad at header.c:1003 D: Requires: python(abi) = 2.7 YES (added provide) --> rpmmiNext(0x8f34920) dbi 0x8f34a30(Requirename) <-- db3cget(0x8f34a30,0x8f342d0,0xbfb23178,0xbfb231b0,0x11) rc -30999 flags: DB_NEXT_DUP key: 0x8f02108[11] 0x0 "python(abi)" data: (nil)[6392] 0x800<USERMEM> error: db3cpget:db3.c:1443: dbcursor->pget(-30999): BDB0063 DB_BUFFER_SMALL: User memory too small for return value <-- db3cpget(0x8f34a30,0x8f342d0,0xbfb23178,0xbfb23194,0xbfb231b0,0x11) rc -30999 flags: DB_NEXT_DUP key: 0x8f02108[11] 0x0 "python(abi)" pkey: 0x8f3ea90[4] 0x0 0xc1030000 data: 0xb7445000[7500] 0x800<USERMEM> <-- rpmmiGet(0x8f34a30(Requirename),0x8f342d0,0xbfb23178,0xbfb231b0,0x11) rc -30999 rpm: rpmdb.c:2192: rpmmiNext: Assertion `0' failed.
In short: db-5.3.15 is failing a repeated lookup of an identical key.
Boring in through 2.7.2-4- mdv2012. 0.i586. rpm config_ 3_Requirename %{_dbi_btconfig} %{?_bt_dupsort} debug
$ sudo ./rpm -Uvv --replacepkgs --hdrdebug --rpmmidebug python-
with "debug" added in /usr/lib/rpm/macros
%_dbi_
the relevant accesses are
--> rpmmiInit( 0x8eaa698, Requirename, 0x8f3eaa0[ 0]="python( abi)") dbi 0x8f34a30 mi 0x8f34920 0x8f34920, 0x8e9bbe0[1], 1) rc 0 h# 4264 0x8f34920) dbi 0x8f34a30( Requirename) 0x8f34a30, (nil),0x8f3493c ,0x0) dbc 0x8f342d0 0x0 rc 0 0x8f34a30, 0x8f342d0, 0xbfb23178, 0xbfb231b0, 0x1a) rc -30999 0x8f34a30, 0x8f342d0, 0xbfb23178, 0xbfb23194, 0xbfb231b0, 0x1a) rc 0 0x8f34a30( Requirename) ,0x8f342d0, 0xbfb23178, 0xbfb231b0, 0x1a) rc 0 0x8f34920) dbi 0x8f34a30( Requirename) 0x8f34a30, 0x8f342d0, 0xbfb23178, 0xbfb231b0, 0x11) rc -30999 0x8f34a30, 0x8f342d0, 0xbfb23178, 0xbfb23194, 0xbfb231b0, 0x11) rc 0 0x8f34a30( Requirename) ,0x8f342d0, 0xbfb23178, 0xbfb231b0, 0x11) rc 0 0x8f34920) dbi 0x8f34a30( Requirename) 0x8f34a30, 0x8f342d0, 0xbfb23178, 0xbfb231b0, 0x11) rc -30999 db3.c:1443: dbcursor- >pget(- 30999): BDB0063 DB_BUFFER_SMALL: User memory too small for return value 0x8f34a30, 0x8f342d0, 0xbfb23178, 0xbfb23194, 0xbfb231b0, 0x11) rc -30999 0x8f34a30( Requirename) ,0x8f342d0, 0xbfb23178, 0xbfb231b0, 0x11) rc -30999
<-- rpmmiPrune(
--> rpmmiNext(
<-- db3copen(
<-- db3cget(
flags: DB_SET
key: 0x8f33f18[11] 0x0 "python(abi)"
data: (nil)[9620] 0x800<USERMEM>
<-- db3cpget(
flags: DB_SET
key: 0x8f33f18[11] 0x0 "python(abi)"
pkey: 0x8f3ea90[4] 0x0 0x4e010000
data: 0xb7444000[9620] 0x800<USERMEM>
<-- rpmmiGet(
--> h 0x8e9c2d0 ++ 1 headerLoad at header.c:1003
D: Requires: python(abi) = 2.7 YES (added provide)
--> rpmmiNext(
<-- db3cget(
flags: DB_NEXT_DUP
key: 0x8f02108[11] 0x0 "python(abi)"
data: (nil)[22812] 0x800<USERMEM>
<-- db3cpget(
flags: DB_NEXT_DUP
key: 0x8f02108[11] 0x0 "python(abi)"
pkey: 0x8f3ea90[4] 0x0 0xbd030000
data: 0xb61ab000[6784] 0x800<USERMEM>
<-- rpmmiGet(
--> h 0x8e9c2d0 -- 1 miFreeHeader at rpmdb.c:1539
--> h 0x8eaf998 ++ 1 headerLoad at header.c:1003
D: Requires: python(abi) = 2.7 YES (added provide)
--> rpmmiNext(
<-- db3cget(
flags: DB_NEXT_DUP
key: 0x8f02108[11] 0x0 "python(abi)"
data: (nil)[6392] 0x800<USERMEM>
error: db3cpget:
<-- db3cpget(
flags: DB_NEXT_DUP
key: 0x8f02108[11] 0x0 "python(abi)"
pkey: 0x8f3ea90[4] 0x0 0xc1030000
data: 0xb7445000[7500] 0x800<USERMEM>
<-- rpmmiGet(
rpm: rpmdb.c:2192: rpmmiNext: Assertion `0' failed.
In short: db-5.3.15 is failing a repeated lookup of an identical key.