On Feb 15, 2011, at 9:18 PM, Silvan Calarco wrote:
> 
> This is the difference before and after conversion:
> 
> [root@smartqv7 ~]# file rpm/Packages
> rpm/Packages: Berkeley DB (Hash, version 9, native byte-order)
> [root@smartqv7 ~]# file /var/lib/rpm/Packages 
> /var/lib/rpm/Packages: Berkeley DB (Btree, version 9, big-endian)
> 

I'm not sure where you ended up with a DB_HASH, but
the likeliest candidate is from the dbconvert.sh script
which is attempting 4.6.1 -> 5.3.8. You should
have had btree in both 5.2.2 and 5.3.8.

> Ok I fixed macros file accordingly and rebuilddb showed no errors but no 
> index 
> tables were created.
> 
> # rpm --rebuilddb -vv
> D: pool fd:     created size 208 limit -1 flags 0
> D: pool iob:    created size 20 limit -1 flags 0
> D: pool mire:   created size 84 limit -1 flags 0
> D: pool lua:    created size 32 limit -1 flags 0
> D: pool ts:     created size 888 limit -1 flags 0
> D: pool db:     created size 208 limit -1 flags 0
> D: pool dbi:    created size 288 limit -1 flags 0
> D: rpmdb: cpus 1 physmem 208Mb
> D: opening  db environment /var/lib/rpm/Packages thread:lock:log:mpool:txn
> D: opening  db index       /var/lib/rpm/Packages create:thread:auto_commit 
> mode=0x2
> D: pool tsi:    created size 24 limit -1 flags 0

Hmmm ... 

> D: closed   db index       /var/lib/rpm/Packages
> D: closed   db environment /var/lib/rpm/Packages
> D: pool tsi:    reused 1, alloc'd 1, free'd 1 items.
> D: pool ts:     reused 0, alloc'd 1, free'd 1 items.
> D: pool db:     reused 0, alloc'd 1, free'd 1 items.
> D: pool dbi:    reused 0, alloc'd 1, free'd 1 items.
> D: pool lua:    reused 0, alloc'd 1, free'd 1 items.
> D: pool mire:   reused 0, alloc'd 1, free'd 1 items.
> D: pool iob:    reused 0, alloc'd 1, free'd 1 items.
> D: pool fd:     reused 15, alloc'd 2, free'd 2 items.
> 
> Next I tried an installation/remove command:
> 
> # rpm -e python-rpm
> 
> It takes a very long time to create Providename and Requirename, then I have 
> this error and the package is not removed:
> 

If you add -vv I can often guess from context. There's little I can tell from
"long time": was it the generation? or something else?


> rpm: rpmdb.c:2193: rpmmiNext: Assertion `(size_t)p.size == sizeof(mi-
>> mi_offset)' failed.
> Aborted
> 

This is a sanity check on the data returned from an rpmdb: totally "can't 
happen".

>> You can live without --rebuilddb if necessary. In fact, --rebuilddb is
>> largely useless with "RPM ACID", what is needed is
>>      cd /var/lib/rpm
>>      db51_recover -ev
>> 
>> I'd tatoo that on my forehead if I thought it would help. Old habits using
>> --rebuilddb are gonna take years to change.
> 
> Yes I think I've learned it, but is this available with db 4.7 too?
> 

I haven't personally used db-4.7 with "RPM ACID".

I have checked and remember no reason why "RPM ACID" shouldn't
work with db-4.7.x. TRansactional logging and ACID have been in
Berkeley DB for years, and there just haven't been
that many API change.

Meanwhile, db-4.8.x is known to work recently in IDMS, and I've
used all of 4.8.x/5.0.x/5.1.x while developing.

You might try a later version. I will as soon as I get a chance
and have to build RPM on a system with db-4.7.x installed.

73 de Jeff

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to