* Mike:
Quote:
Sometimes compact cannot return space to the file system in a single
call if there are not many pages on the free list when it begins. This
is because in order to free pages to the file system they must be at
the end of the file and if those pages are logically at the begining of
the database it will not have any pages to swap them with. This could
be the effect you are seeing. |
Ah, thanks for the explanation.
Quote:
As far as bugs that cause hangs and panics. I would need more details
to analyze what is happening. When a "run recovery" error is first
generated it is always preceeded by a more descriptive message. |
Unfortunately, my error handling framework only stores the last
such message, but with a suitable printf call, I get:
notice: compacting ipv4
** Berkeley DB error: Not enough room in parent: ipv4.db: page 76384
** Berkeley DB error: PANIC: Invalid argument
** Berkeley DB error: PANIC: fatal region error detected; run recovery
(This is on amd64, with Berkeley DB 4.4.20.)
Quote:
Where you able to determin where the hang was occuring in the code? A
stack trace would be useful here. |
This happens with the 4.4.16 version on i386. Unfortunately, it's
difficult for me to switch to 4.4.20 because the vendor changed the
region format during the 4.4.16 -> 4.4.20 switch.