Quoting "Marvin Humphrey" <marvin@rectangular.com>:
> It would be helpful to see a C stack trace to confirm the suspicion.
> If it's the same number every time, can you put a watch point into
> I32Arr_get() looking for it?
Here's the backtrace. I had trouble triggering the breakpoint with a
condition, so I just spliced in a function call to break on before
CONFESS("Out of bounds...:
(gdb) bt
#0 bloopy () at ../c_src/KinoSearch/Util/I32Array.c:31
#1 0x0023d2be in kino_I32Arr_get (self=0x9dbd1d8, num=-2147406182) at
../c_src/KinoSearch/Util/I32Array.c:37
#2 0x00262309 in kino_PostPool_refill (self=0x9dd88c8) at
../c_src/h/KinoSearch/Util/I32Array.h:225
#3 0x0023ae7c in refill_cache (self=0x9dbfb48) at
../c_src/h/KinoSearch/Util/SortExRun.h:264
#4 0x0023b260 in kino_SortEx_fetch (self=0x9dbfb48) at
../c_src/KinoSearch/Util/SortExternal.c:120
#5 0x002642d2 in write_terms_and_postings (self=<value optimized
out>, raw_post_source=0x9dbfb48, post_stream=0x9e816a8,
skip_stream=0x9f591a8)
at ../c_src/KinoSearch/Index/PostingsWriter.c:332
#6 0x002645b8 in kino_PostWriter_finish (self=0x9dba8a8) at
../c_src/KinoSearch/Index/PostingsWriter.c:380
#7 0x00266c13 in kino_SegWriter_finish (self=0x9dbb698) at
../c_src/h/KinoSearch/Index/PostingsWriter.h:266
#8 0x00231e4d in kino_InvIndexer_finish (self=0x9718b70, optimize=1)
at ../c_src/h/KinoSearch/Index/SegWriter.h:259
#9 0x001aabe5 in XS_KinoSearch__InvIndexer__finish
(my_perl=0x8a97008, cv=0x8bed7ec) at KinoSearch.xs:24903
#10 0x0050949d in Perl_pp_entersub () from
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so
#11 0x0050290f in Perl_runops_standard () from
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so
#12 0x004a810e in perl_run () from
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so
#13 0x0804921e in main ()
...and here's a bt with vars, just in case:
(gdb) bt full
#0 bloopy () at ../c_src/KinoSearch/Util/I32Array.c:31
No locals.
#1 0x0023d2be in kino_I32Arr_get (self=0x9dbd1d8, num=-2147406182) at
../c_src/KinoSearch/Util/I32Array.c:37
__func__ = "kino_I32Arr_get"
#2 0x00262309 in kino_PostPool_refill (self=0x9dd88c8) at
../c_src/h/KinoSearch/Util/I32Array.h:225
remapped = <value optimized out>
lex_stepper = (kino_LexStepper * const) 0x9dd8950
main_posting = (kino_Posting * const) 0x9dd89b8
lex_instream = (kino_InStream * const) 0x9dd8a40
post_instream = (kino_InStream * const) 0x9dd8aa8
doc_map = (kino_I32Array * const) 0x9dbd1d8
mem_thresh = 1048576
doc_base = 338003
lex_end = 503
num_elems = 6215
term_text = (kino_CharBuf *) 0x9e67ad8
mem_pool = (kino_MemoryPool *) 0x9e98898
__func__ = "kino_PostPool_refill"
#3 0x0023ae7c in refill_cache (self=0x9dbfb48) at
../c_src/h/KinoSearch/Util/SortExRun.h:264
endpost = <value optimized out>
#4 0x0023b260 in kino_SortEx_fetch (self=0x9dbfb48) at
../c_src/KinoSearch/Util/SortExternal.c:120
__func__ = "kino_SortEx_fetch"
#5 0x002642d2 in write_terms_and_postings (self=<value optimized
out>, raw_post_source=0x9dbfb48, post_stream=0x9e816a8,
skip_stream=0x9f591a8)
at ../c_src/KinoSearch/Index/PostingsWriter.c:332
same_text_as_last = 1
tinfo = (kino_TermInfo * const) 0x9e69b18
skip_stepper = (kino_SkipStepper * const) 0x9dbd0a0
lex_writer = (kino_LexWriter * const) 0x9dba8f0
skip_interval = 16
last_term_text = (kino_CharBuf * const) 0x9dd7420
last_doc_num = 426852
last_skip_doc = 426833
last_skip_filepos = <value optimized out>
posting = (kino_RawPosting *) 0xb79d8ff8
fetch = (fetcher_t) 0x23b230 <kino_SortEx_fetch>
__func__ = "write_terms_and_postings"
#6 0x002645b8 in kino_PostWriter_finish (self=0x9dba8a8) at
../c_src/KinoSearch/Index/PostingsWriter.c:380
folder = (kino_Folder *) 0x9716fa8
i = 24
metadata = (kino_Hash *) 0x9dbc800
#7 0x00266c13 in kino_SegWriter_finish (self=0x9dbb698) at
../c_src/h/KinoSearch/Index/PostingsWriter.h:266
No locals.
#8 0x00231e4d in kino_InvIndexer_finish (self=0x9718b70, optimize=1)
at ../c_src/h/KinoSearch/Index/SegWriter.h:259
to_merge = (kino_VArray *) 0x9db78b8
i = 15
merge_happened = 1
__func__ = "kino_InvIndexer_finish"
#9 0x001aabe5 in XS_KinoSearch__InvIndexer__finish
(my_perl=0x8a97008, cv=0x8bed7ec) at KinoSearch.xs:24903
optimize = <value optimized out>
optimize_sv = (SV *) 0x962d920
sp = (SV **) 0x9135084
ax = <value optimized out>
__func__ = "XS_KinoSearch__InvIndexer__finish"
#10 0x0050949d in Perl_pp_entersub () from
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so
No symbol table info available.
#11 0x0050290f in Perl_runops_standard () from
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so
No symbol table info available.
#12 0x004a810e in perl_run () from
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#13 0x0804921e in main ()
No symbol table info available.
_______________________________________________
KinoSearch mailing list
KinoSearch@rectangular.com
http://www.rectangular.com/mailman/listinfo/kinosearch