During indexing set of documents (about 10000 already indexed) I get the 
exception "vector subscript out of range" from ArrayBase operator [ ].
I did some research and it seems it is because threadState->postingEquals() 
method is called with invalid threadState->p set.
The postingsHash[hashPos] probably contains pointer to already deleted object, 
as 0xfeee is in all members (I'm running it under MSVC 2005 Debugger).
See call stack and threadState->p dump below.

Source (documentswriterthreadstate.cpp:1010)
======

  // Locate Posting in hash
  threadState->p = postingsHash[hashPos];

  if (threadState->p != NULL && !threadState->postingEquals(tokenText, 
tokenTextLen)) {
...


Call stack
========
clucene-cored.dll!lucene::util::ArrayBase<wchar_t *>::operator[](unsigned int 
_Pos=0xfffffbbb)  Line 92 C++

clucene-cored.dll!lucene::index::DocumentsWriter::ThreadState::postingEquals(const
 wchar_t * tokenText=0x032772a8, const int tokenTextLen=0x00000008)  Line 577 + 
0x25 bytes    C++

clucene-cored.dll!lucene::index::DocumentsWriter::ThreadState::FieldData::addPosition(lucene::analysis::Token
 * token=0x0100c770)  Line 1012 + 0x26 bytes       C++

clucene-cored.dll!lucene::index::DocumentsWriter::ThreadState::FieldData::invertField(lucene::document::Field
 * field=0x04d2a9e0, lucene::analysis::Analyzer * analyzer=0x010a5fa0, const 
int maxFieldLength=0x00002710)  Line 902      C++

clucene-cored.dll!lucene::index::DocumentsWriter::ThreadState::FieldData::processField(lucene::analysis::Analyzer
 * analyzer=0x010a5fa0)  Line 797      C++

clucene-cored.dll!lucene::index::DocumentsWriter::ThreadState::processDocument(lucene::analysis::Analyzer
 * analyzer=0x010a5fa0)  Line 554 + 0x1a bytes C++

clucene-cored.dll!lucene::index::DocumentsWriter::updateDocument(lucene::document::Document
 * doc=0x0012f600, lucene::analysis::Analyzer * analyzer=0x010a5fa0, 
lucene::index::Term * delTerm=0x00000000)  Line 934 + 0xc bytes C++

clucene-cored.dll!lucene::index::DocumentsWriter::addDocument(lucene::document::Document
 * doc=0x0012f600, lucene::analysis::Analyzer * analyzer=0x010a5fa0)  Line 919  
C++

clucene-cored.dll!lucene::index::IndexWriter::addDocument(lucene::document::Document
 * doc=0x0012f600, lucene::analysis::Analyzer * analyzer=0x010a5fa0)  Line 670 
+ 0x13 bytes C++

clucene-cored.dll!lucene::index::IndexModifier::addDocument(lucene::document::Document
 * doc=0x0012f600, lucene::analysis::Analyzer * docAnalyzer=0x010a5fa0)  Line 
100 C++

mkidx.exe!tovek::index::Index::indexDocument(tovek::index::Document & 
doc={...}, bool bInsert=false, unsigned long & ulPrevDoc=0x00000007, 
tovek::analysis::CachedAnalyzer * pCachedAnalyzer=0x010a5fa0)  Line 472      C++


Problematic item in PostingHash:
=========================

-               threadState->p  0x02538fd8 {textStart=0xfeeefeee 
docFreq=0xfeeefeee freqStart=0xfeeefeee ...}   
lucene::index::DocumentsWriter::Posting *
                textStart       0xfeeefeee      int
                docFreq 0xfeeefeee      int
                freqStart       0xfeeefeee      int
                freqUpto        0xfeeefeee      int
                proxStart       0xfeeefeee      int
                proxUpto        0xfeeefeee      int
                lastDocID       0xfeeefeee      int
                lastDocCode     0xfeeefeee      int
                lastPosition    0xfeeefeee      int
+               vector  0xfeeefeee {p=??? lastOffset=??? offsetStart=??? ...}   
lucene::index::DocumentsWriter::PostingVector *

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
CLucene-developers mailing list
CLucene-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/clucene-developers

Reply via email to