[Xapian-tickets] [Xapian] #455: "Value in posting list too large" error with 1.1.4 (chert and brass, not flint)

Xapian nobody at xapian.org
Tue Mar 16 15:37:01 GMT 2010


#455: "Value in posting list too large" error with 1.1.4 (chert and brass, not
flint)
---------------------------+------------------------------------------------
 Reporter:  tack           |       Owner:  olly    
     Type:  defect         |      Status:  assigned
 Priority:  normal         |   Milestone:  1.1.5   
Component:  Backend-Chert  |     Version:  1.1.4   
 Severity:  normal         |    Keywords:          
Blockedby:                 |    Platform:  All     
 Blocking:                 |  
---------------------------+------------------------------------------------

Comment(by tack):

 I applied the patch to a snapshot of r14208 and unfortunately even the
 reduced testcase is not only segfaulting, but segfaulting earlier.

 Without the patch, r14208 behaves as before, with the assertion error
 "backends/chert/chert_cursor.cc:160: B->level <= level"

 The backtrace with the patch is strange because it makes its way inside
 the brass backend:
 {{{
 Program received signal SIGSEGV, Segmentation fault.
 [Switching to Thread 0xb7f21ad0 (LWP 28178)]
 0xb783b37a in getint2 (p=0x0, c=9) at ./common/unaligned.h:50
 50          return p[c] << 8 | p[c + 1];
 Current language:  auto; currently c++
 (gdb) bt
 #0  0xb783b37a in getint2 (p=0x0, c=9) at ./common/unaligned.h:50
 #1  0xb786ac98 in BrassTable::find_in_block (p=0x0, key={p = 0x9d924d2
 "\b"}, leaf=true, c=-1)
     at backends/brass/brass_table.cc:476
 #2  0xb7878362 in BrassTable::find (this=0x9dab340, C_=0x9e2deb8) at
 backends/brass/brass_table.cc:519
 #3  0xb783a18d in BrassCursor::find_entry (this=0x9e2d9a0,
 key=@0xbf9209d0) at backends/brass/brass_cursor.cc:177
 #4  0xb7886f1b in ValueUpdater::update (this=0xbf920a44, did=1,
 value=@0x9e2e6b4) at backends/chert/chert_values.cc:274
 #5  0xb78cffc8 in ChertValueManager::merge_changes (this=0x9dab6d4) at
 backends/chert/chert_values.cc:346
 #6  0xb7891c95 in ChertWritableDatabase::open_value_list (this=0x9dab318,
 slot=1) at backends/chert/chert_database.cc:1576
 #7  0xb79a16c2 in ValueStreamDocument::do_get_value (this=0xbf920f68,
 slot=1) at matcher/valuestreamdocument.cc:67
 #8  0xb77e536b in Xapian::Document::Internal::get_value (this=0xbf920f68,
 valueid=1) at api/omdocument.cc:284
 #9  0xb7975d53 in Collapser::process (this=0xbf920fe0, item=@0xbf921028,
 postlist=0xa3854c0, vsdoc=@0xbf920f68, mcmp=@0xbf921134)
     at matcher/collapser.cc:82
 #10 0xb7984fbd in MultiMatch::get_mset (this=0xbf9213ec, first=0,
 maxitems=5, check_at_least=5, mset=@0xbf921580,
     stats=@0xbf921454, mdecider=0x0, matchspy_legacy=0x0, sorter=0x0) at
 matcher/multimatch.cc:664
 #11 0xb77f2a4d in Xapian::Enquire::Internal::get_mset (this=0xa37b5e8,
 first=0, maxitems=5, check_at_least=0, rset=0x0,
     mdecider=0x0, matchspy_legacy=0x0) at api/omenquire.cc:670
 #12 0xb77f2e02 in Xapian::Enquire::get_mset (this=0xa040e88, first=0,
 maxitems=5, check_at_least=0, rset=0x0, mdecider=0x0)
     at api/omenquire.cc:1034
 #13 0xb7dca4af in _wrap_Enquire_get_mset__SWIG_4 (nobjs=3,
 swig_obj=0xbf9215e4) at modern/xapian_wrap.cc:22653
 #14 0xb7dcc0b0 in _wrap_Enquire_get_mset (self=0x0, args=0xb7eb939c) at
 modern/xapian_wrap.cc:22798
 #15 0x0805cb97 in PyObject_Call ()
 #16 0x080c7aa7 in PyEval_EvalFrameEx ()
 #17 0x080c96e5 in PyEval_EvalFrameEx ()
 #18 0x080cb1f7 in PyEval_EvalCodeEx ()
 #19 0x080cb347 in PyEval_EvalCode ()
 #20 0x080ea818 in PyRun_FileExFlags ()
 #21 0x080eaab9 in PyRun_SimpleFileExFlags ()
 #22 0x08059335 in Py_Main ()
 #23 0x080587f2 in main ()
 }}}

 I'm compiling with CXXFLAGS='-O0 -g' and --enable-assertions.  I also
 tried building with gcc 4.1 and it made no difference.

 Is the patch you attached complete?  Perhaps you forgot to diff one or
 more files?

-- 
Ticket URL: <http://trac.xapian.org/ticket/455#comment:6>
Xapian <http://xapian.org/>
Xapian



More information about the Xapian-tickets mailing list