hi, I'm consistently having this crash when trying to re-open an existing IndexReader.
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fffe6611700 (LWP 27814)] 0x00007ffff673fd77 in std::_Rb_tree<wchar_t const*, std::pair<wchar_t const* const, lucene::index::SegmentReader::Norm*>, std::_Select1st<std::pair<wchar_t const* const, lucene::index::SegmentReader::Norm*> >, lucene::util::Compare::WChar, std::allocator<std::pair<wchar_t const* const, lucene::index::SegmentReader::Norm*> > >::_M_begin (this=0x7fffe01c0660, directory=<value optimized out>, infos=<value optimized out>, closeDirectory=<value optimized out>, oldReaders=<value optimized out>, oldStarts=<value optimized out>, oldNormsCache=0x62f870) at /usr/include/c++/4.4/bits/stl_tree.h:488 488 (this->_M_impl._M_header._M_parent); (gdb) bt #0 0x00007ffff673fd77 in std::_Rb_tree<wchar_t const*, std::pair<wchar_t const* const, lucene::index::SegmentReader::Norm*>, std::_Select1st<std::pair<wchar_t const* const, lucene::index::SegmentReader::Norm*> >, lucene::util::Compare::WChar, std::allocator<std::pair<wchar_t const* const, lucene::index::SegmentReader::Norm*> > >::_M_begin (this=0x7fffe01c0660, directory=<value optimized out>, infos=<value optimized out>, closeDirectory=<value optimized out>, oldReaders=<value optimized out>, oldStarts=<value optimized out>, oldNormsCache=0x62f870) at /usr/include/c++/4.4/bits/stl_tree.h:488 #1 std::_Rb_tree<wchar_t const*, std::pair<wchar_t const* const, lucene::index::SegmentReader::Norm*>, std::_Select1st<std::pair<wchar_t const* const, lucene::index::SegmentReader::Norm*> >, lucene::util::Compare::WChar, std::allocator<std::pair<wchar_t const* const, lucene::index::SegmentReader::Norm*> > >::find (this=0x7fffe01c0660, directory=<value optimized out>, infos=<value optimized out>, closeDirectory=<value optimized out>, oldReaders=<value optimized out>, oldStarts=<value optimized out>, oldNormsCache=0x62f870) at /usr/include/c++/4.4/bits/stl_tree.h:1434 #2 std::map<wchar_t const*, lucene::index::SegmentReader::Norm*, lucene::util::Compare::WChar, std::allocator<std::pair<wchar_t const* const, lucene::index::SegmentReader::Norm*> > >::find ( this=0x7fffe01c0660, directory=<value optimized out>, infos=<value optimized out>, closeDirectory=<value optimized out>, oldReaders=<value optimized out>, oldStarts=<value optimized out>, oldNormsCache=0x62f870) at /usr/include/c++/4.4/bits/stl_map.h:674 #3 lucene::util::__CLMap<wchar_t const*, lucene::index::SegmentReader::Norm*, std::map<wchar_t const*, lucene::index::SegmentReader::Norm*, lucene::util::Compare::WChar, std::allocator<std::pair<wchar_t const* const, lucene::index::SegmentReader::Norm*> > >, lucene::util::Deletor::Dummy, lucene::index::SegmentReader::Norm>::get (this=0x7fffe01c0660, directory=<value optimized out>, infos=<value optimized out>, closeDirectory=<value optimized out>, oldReaders=<value optimized out>, oldStarts=<value optimized out>, oldNormsCache=0x62f870) at /home/andrew/tmp/clucene-HEAD-772481c/src/core/CLucene/util/VoidMap.h:84 #4 MultiSegmentReader (this=0x7fffe01c0660, directory=<value optimized out>, infos=<value optimized out>, closeDirectory=<value optimized out>, oldReaders=<value optimized out>, oldStarts=<value optimized out>, oldNormsCache=0x62f870) at /home/andrew/tmp/clucene-HEAD-772481c/src/core/CLucene/index/MultiSegmentReader.cpp:163 #5 0x00007ffff6740502 in lucene::index::MultiSegmentReader::doReopen (this=<value optimized out>, infos=0x7fffe01c1940) at /home/andrew/tmp/clucene-HEAD-772481c/src/core/CLucene/index/MultiSegmentReader.cpp:207 #6 0x00007ffff67235e4 in lucene::index::DirectoryIndexReader::FindSegmentsFile_Reopen::doBody (this=0x7fffe66107f0, segmentFileName=0x7fffe01c0888 "segments_h") at /home/andrew/tmp/clucene-HEAD-772481c/src/core/CLucene/index/DirectoryIndexReader.cpp:185 #7 0x00007ffff672343f in lucene::index::SegmentInfos::FindSegmentsFile<lucene::index::DirectoryIndexReader*>::tryDoBody (this=0x62fdc0, segmentFileName=0x0, ret_err=...) at /home/andrew/tmp/clucene-HEAD-772481c/src/core/CLucene/index/_SegmentInfos.h:485 #8 0x00007ffff66ebc64 in lucene::index::SegmentInfos::_FindSegmentsFile::doRun (this=0x7fffe66107f0) at /home/andrew/tmp/clucene-HEAD-772481c/src/core/CLucene/index/SegmentInfos.cpp:1046 #9 0x00007ffff6722b78 in lucene::index::SegmentInfos::FindSegmentsFile<lucene::index::DirectoryIndexReader*>::run (this=0x62f810) at /home/andrew/tmp/clucene-HEAD-772481c/src/core/CLucene/index/_SegmentInfos.h:508 #10 lucene::index::DirectoryIndexReader::reopen (this=0x62f810) at /home/andrew/tmp/clucene-HEAD-772481c/src/core/CLucene/index/DirectoryIndexReader.cpp:214 The code is basically performing: IndexReader* reader = searcher->getReader(); IndexReader* newReader = reader->reopen(); if (newReader != reader) { reader->close(); delete reader; searcher->close(); delete searcher; searcher = new IndexSearcher(newReader); } Any ideas? Regards, Andrew Victor ------------------------------------------------------------------------------ Got Input? Slashdot Needs You. Take our quick survey online. Come on, we don't ask for help often. Plus, you'll get a chance to win $100 to spend on ThinkGeek. http://p.sf.net/sfu/slashdot-survey _______________________________________________ CLucene-developers mailing list CLucene-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/clucene-developers