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
[email protected]
https://lists.sourceforge.net/lists/listinfo/clucene-developers