On Tuesday 15 February 2011 22:29:09 Jeff Johnson wrote:

> If file reports Berkeley DB etc, look for "btree" or "hash". Either
> can/will work, but the configuration needs to agree with reality.
> 
> It should be "btree" for 5.2.1 and 5.3.8 (but the dbconvert.sh script is
> attempting db-4.6.1 w hash -> btree and so may have gotten confused).
> 
> The configuration is in this line in /usr/lib/rpm/macros
> 
>       %_dbi_config_3_Packages         %{_dbi_btconfig}
> 
> Use "_dbi_btconfig" if Packages is in btree format, and "dbi_htconfig" if
> in hash format

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)

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
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:

rpm: rpmdb.c:2193: rpmmiNext: Assertion `(size_t)p.size == sizeof(mi-
>mi_offset)' failed.
Aborted
 
> 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?

Silvan

-- 
mambaSoft di Calarco Silvan
Web: http://www.mambasoft.it
 
mambaSoft Store @ http://www.mambastore.it
openmamba GNU/Linux development @ http://www.openmamba.org
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
Developer Communication List                        rpm-devel@rpm5.org

Reply via email to