Hi,
I fixed two bugs in Berkeley DB compression. A boundary
check and a memory leak. The first was not likely to happen (I
had to create very artificial condition to trigger it). The
leak was happening all the time and is certainly a major cause
of performances slow down since it filled the cache of Berkeley DB
with 32 bytes objects. Before the 'cannot alloc' error, the Berkeley DB
cache was constantly shrinking.
* db/mp/mp_bh.c (__memp_bhfree): always free the chain, if
any. The bh is reset to null after free and we loose the
pointer anyway, finally filling the pool with it.
* db/mp/mp_cmpr.c (__memp_cmpr_write): i < CMPR_MAX - 1 instead of
i < CMPR_MAX otherwise go beyond array limits. This fixes a
major problem when handling large files.
Take care,
--
Loic Dachary
24 av Secretan
75019 Paris
Tel: 33 1 42 45 09 16
e-mail: [EMAIL PROTECTED]
URL: http://www.senga.org/
------------------------------------
To unsubscribe from the htdig3-dev mailing list, send a message to
[EMAIL PROTECTED]
You will receive a message to confirm this.