Can you create a failing test?

On a side note, next week we will be working on the new CLucene code-base,
so hopefully we will have a newer and better version supported soon.

On Fri, Jul 29, 2011 at 12:51 PM, Andrew Victor <avictor...@gmail.com>wrote:

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

Reply via email to