[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: search_candidates on win32




Hi,

Thanks! Increasing the stack size works.

If anyone else is interested here's the instructions to in the stacksize on win32 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_.2f.F.asp

I used 'editbin /STACK:16000000 slapd.exe'

--Kervin


Howard Chu wrote:
back-bdb is very stack-hungry, you need at least 2MB stack per thread to use
it at all. I haven't looked into how to control the size of a thread's stack
on Windows. If you can't set it (configure tries to set it to 16MB on
pthreads-based systems) then you should compile filterindex.c
with -DLDAP_PVT_THREAD_STACK_SIZE=0 to force it to use malloc instead.

  -- Howard Chu
  Chief Architect, Symas Corp.       Director, Highland Sun
  http://www.symas.com               http://highlandsun.com/hyc
  Symas: Premier OpenSource Development and Support


-----Original Message-----
From: owner-openldap-devel@OpenLDAP.org
[mailto:owner-openldap-devel@OpenLDAP.org]On Behalf Of Kervin Pierre
Sent: Sunday, March 17, 2002 11:34 PM
To: openldap-devel
Subject: search_candidates on win32


Hello,

I can reliably crash slapd on win32 by running a ldapsearch that is not
scope == base. CVS-14MAR02

I think the problem is in the search_candidates() function in
servers/slapd/back-bdb/search.c ...

static int search_candidates( ... )
{
        int rc;
        Filter          f, scopef, rf, xf;
        ID              tmp[BDB_IDL_UM_SIZE];
        AttributeAssertion aa_ref;
...

The declaration 'ID tmp[BDB_IDL_UM_SIZE];' causes a stack overflow.

On my system, this evaluates to 'unsigned long tmp[131070]'.

My question is, isn't that array to big?  Can someone shed some light on
this?


--Kervin


-- http://linuxquestions.org/ - Ask linux questions, give linux help. http://splint.org/ - Write safe C code. splint source-code analyzer.






-- http://linuxquestions.org/ - Ask linux questions, give linux help. http://splint.org/ - Write safe C code. splint source-code analyzer.