Greetings Jim,

Attached is a hack which explicitly stops the recursion in OS X.  Does 
it work?  (Neal, would it be better in one of the other functions in 
the loop?)

I don't know why a different OS should crash in a different place.  
Does OS X support  pread?  Type  man pread.

Are you having any luck with the other errors in  'make check'?

Thanks!
Lachlan

On Friday 28 February 2003 11:23, Jim Cole wrote:
> Hi - Just a follow up on the issue of zlib version.  I installed
> the 1.1.4 version of zlib available via Fink and rebuilt
> everything. Using the newer version of zlib, I encounter the same
> problem (i.e. a segfault from htdig with a very deep stack trace).
> I did perform a distclean and verified the use of the 1.1.4 version
> libz via otool.
>
> Jim
>
> On Thursday, February 27, 2003, at 04:41 AM, Lachlan Andrew wrote:
> > On Thursday 27 February 2003 11:16, Jim Cole wrote:
> >> The backtrace is attached. The problem does not occur if I turn
> >> off compression.
> >
> > Thanks.  My guess is that (part of) the reason for the very deep
> > recursion is that it's trying to allocate a block of  len=8247
> > bytes, when the page size is only 8192:
> > #3244 0x00070958 in CDB___memp_alloc (dbmp=0xa98c30,
> > memreg=0xa99f60, mfp=0xc84e98, len=8247, offsetp=0x0,
> > retp=0xbfffd900) at mp_alloc.c:88
> >
> > I used to get the error
> >     Unable to allocate %lu bytes from mpool shared region
> > at some stage too, which is generated inside  CDB___memp_alloc. 
> > From memory, that was when I was using 1.1.3.
> >
> > If that is really the problem, it can be fixed by testing
> > explicitly whether  len>pagesize  (if the pagesize is available
> > somewhere...).
>
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> htdig-dev mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/htdig-dev
*** mp_alloc.c	Sun Feb  3 05:18:05 2002
--- mp_alloc-try.c	Sun Mar  9 19:39:05 2003
***************
*** 84,94 ****
--- 84,99 ----
  
  		/* Write the page if it's dirty. */
  		if (F_ISSET(bhp, BH_DIRTY)) {
+ 		        static int count = 0;
+ 			if (count)	// if this memp_alloc call is recursive
+ 			    continue;	// through bhwrite, seek a clean page...
+ 			count++;
  			++bhp->ref;
  			if ((ret = CDB___memp_bhwrite(dbmp,
  			    bh_mfp, bhp, &restart, &wrote)) != 0)
  				return (ret);
  			--bhp->ref;
+ 			count--;
  
  			/*
  			 * Another process may have acquired this buffer and

Reply via email to