|
From: Lachlan A. <lh...@us...> - 2003-03-11 13:26:01
|
Thanks for your email. I think Jim's infinite recursion problem was fairly separate from the=20 database corruption I was having. The recursion is fairly simple.=20 (1) The allocation routine selects a dirty cache page to flush (2) When the page is written, it is "compressed" on the fly, but it is=20 actually slightly expanded and needs to be stored in two pages (3) When the compression routine tries to allocate a new page, it=20 recursively calls the same allocation routine, and the same dirty=20 cache page is selected... Ideally it would be nice to fix mp_cmpr.c so that the "weakcmpr"=20 page was allocated by a completely different mechanism (on the=20 stack?), but that has the potential to introduce lots more bugs. The new releases of BDB don't seem to have mp_cmpr.c at all. Is=20 that an add-on from another project? Mifluz? Cheers, Lachlan On Monday 10 March 2003 17:57, Neal Richter wrote: > Interesting patch.. I need to read more code around it. > > My feeling at this point is that the bug is caused by a problem in > the mp_cmpr.c code |