I foud the problem is in writing NULL at the end of postingsFreeListDW.values. 
In our case the whole array is used
(postingsFreeCountDW == postingsFreeListDW.length) so memset writes after the 
end of array.
When I added simple test before memset (see path), the test works, no heap 
corruption

Borek

> -----Original Message-----
> From: Kostka Bořivoj [mailto:kos...@tovek.cz]
> Sent: Friday, July 30, 2010 4:45 PM
> To: clucene-developers@lists.sourceforge.net
> Subject: Re: [CLucene-dev] RAMDirectory testing
> 
> OK, I'll try to fix this.
> 
> Borek
> 
> > -----Original Message-----
> > From: Itamar Syn-Hershko [mailto:ita...@code972.com]
> > Sent: Friday, July 30, 2010 1:45 PM
> > To: clucene-developers@lists.sourceforge.net
> > Subject: Re: [CLucene-dev] RAMDirectory testing
> >
> > testRAMDirectorySize doesn't hang - it just crashes with heap corruption. I 
> > didn't test
> > with Release build, but I see no reason why this should matter.
> >
> > Here's the stack trace:
> >
> >     msvcr80d.dll!free(void * pUserData=0x01560378)  Line 1178 + 0xb bytes
> >     C++
> > >   clucene-
> > cored.dll!lucene::util::ArrayBase<lucene::index::DocumentsWriter::Posting
> > *>::deleteArray()  Line 53 + 0xf bytes      C++
> >     clucene-
> >
> cored.dll!lucene::util::ObjectArray<lucene::index::DocumentsWriter::Posting>::deleteU
> > ntilNULL()  Line 150        C++
> >     clucene-cored.dll!lucene::index::DocumentsWriter::~DocumentsWriter()  
> > Line
> > 129 C++
> >     clucene-cored.dll!lucene::index::DocumentsWriter::`scalar deleting
> > destructor'()  + 0x16 bytes C++
> >     clucene-cored.dll!lucene::index::IndexWriter::closeInternal(bool
> > waitForMerges=true)  Line 541 + 0x2e bytes  C++
> >     clucene-cored.dll!lucene::index::IndexWriter::close(bool 
> > waitForMerges=true)
> > Line 480    C++
> >     cl_test.exe!testRAMDirectorySize(CuTest * tc=0x00e4cf40)  Line 157 + 0xd
> > bytes       C++
> >
> > The ObjectArray<Posting>  is apparently the very same
> > DocumentsWriter.postingsFreeListDW, the issue we thought we solved already.
> From
> > the quick look I had, it seems as if now the array itself is being deleted 
> > twice -
> > probably as a result of a non-locking deletion from another thread.
> >
> > Can you look into it?
> >
> > Itamar.
> >
> >
> > On 28/7/2010 7:02 PM, Kostka Bořivoj wrote:
> > > I ported index\store\TestRAMDirectory.java into cl_test with following 
> > > results
> > >
> > > - found (and fixed) one trivial bug in RAMDirectory constructor from char 
> > > * path
> > (setLockFactory was not called)
> > > - testRAMDirectorySize (in Debug build) hangs in attempt to report 
> > > corrupted
> heap
> > during IndexWriter close
> > >    method uses intensive multithreaded indexing
> > >
> > > See intensive_testing branch for source code
> > >
> > > Borek
> > >
> > >
> > > ------------------------------------------------------------------------------
> > > The Palm PDK Hot Apps Program offers developers who use the
> > > Plug-In Development Kit to bring their C/C++ apps to Palm for a share
> > > of $1 Million in cash or HP Products. Visit us here for more details:
> > > http://p.sf.net/sfu/dev2dev-palm
> > > _______________________________________________
> > > CLucene-developers mailing list
> > > CLucene-developers@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/clucene-developers
> > >
> > >
> > >
> >
> > ------------------------------------------------------------------------------
> > The Palm PDK Hot Apps Program offers developers who use the
> > Plug-In Development Kit to bring their C/C++ apps to Palm for a share
> > of $1 Million in cash or HP Products. Visit us here for more details:
> > http://p.sf.net/sfu/dev2dev-palm
> > _______________________________________________
> > CLucene-developers mailing list
> > CLucene-developers@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/clucene-developers
> ------------------------------------------------------------------------------
> The Palm PDK Hot Apps Program offers developers who use the
> Plug-In Development Kit to bring their C/C++ apps to Palm for a share
> of $1 Million in cash or HP Products. Visit us here for more details:
> http://p.sf.net/sfu/dev2dev-palm
> _______________________________________________
> CLucene-developers mailing list
> CLucene-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/clucene-developers

Attachment: 0001-Check-if-space-for-terminating-NULL-is-available-in-.patch
Description: 0001-Check-if-space-for-terminating-NULL-is-available-in-.patch

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
CLucene-developers mailing list
CLucene-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/clucene-developers

Reply via email to