RPM

Comment 7 for bug 934420

Revision history for this message
Jeff Johnson (n3npq) wrote :

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.