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
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