ruby 1.8.1 (2003-12-25) [i686-linux]

This is happening every once in a while, while running some rather large
unit tests. It isn't very easy to reproduce and I don't think I'll be
able to reduce it to a short snippet :-(

However, I still have the gdb session open, just in case...


494             for(ptr = table->bins[i]; ptr != 0;) {
1: ptr = (st_table_entry *) 0x401a6ec4
(gdb)
495                 retval = (*func)(ptr->key, ptr->record, arg);
1: ptr = (st_table_entry *) 0x401a6ec4
(gdb)
496                 switch (retval) {
1: ptr = (st_table_entry *) 0x401a6ec4
(gdb)
498                     last = ptr;
1: ptr = (st_table_entry *) 0x401a6ec4
(gdb)
499                     ptr = ptr->next;
1: ptr = (st_table_entry *) 0x401a6ec4
(gdb)
500                     break;
1: ptr = (st_table_entry *) 0x401a6ec4
(gdb) p *ptr
$2 = {hash = 1075474172, key = 1075474108, record = 1075474116, next = 0x401a6ec4}
(gdb) list 490
485         int (*func)();
486         st_data_t arg;
487     {
488         st_table_entry *ptr, *last, *tmp;
489         enum st_retval retval;
490         int i;
491
492         for(i = 0; i < table->num_bins; i++) {
493             last = 0;
494             for(ptr = table->bins[i]; ptr != 0;) {
(gdb) list
495                 retval = (*func)(ptr->key, ptr->record, arg);
496                 switch (retval) {
497                 case ST_CONTINUE:
498                     last = ptr;
499                     ptr = ptr->next;
500                     break;
501                 case ST_STOP:
502                     return;
503                 case ST_DELETE:
504                     tmp = ptr;
(gdb) bt
#0  st_foreach (table=0x401a6e8c, func=0x806d590 <mark_entry>, arg=1) at st.c:500
#1  0x0806d5d6 in mark_tbl (tbl=0x401a6ec4, lev=0) at gc.c:640
#2  0x0806d861 in gc_mark_children (ptr=1075474116, lev=0) at gc.c:892
#3  0x0806d83d in gc_mark_children (ptr=1075474068, lev=0) at gc.c:887
#4  0x0806d83d in gc_mark_children (ptr=1075474076, lev=0) at gc.c:887
#5  0x0806d83d in gc_mark_children (ptr=1075474084, lev=0) at gc.c:887
#6  0x0806d83d in gc_mark_children (ptr=1075474092, lev=0) at gc.c:887
#7  0x0806d83d in gc_mark_children (ptr=1075474100, lev=0) at gc.c:887
#8  0x0806d83d in gc_mark_children (ptr=1075474108, lev=0) at gc.c:887
#9  0x0806d83d in gc_mark_children (ptr=1075474116, lev=0) at gc.c:887
#10 0x0806d7d7 in rb_gc_mark (ptr=0) at gc.c:720
#11 0x4023bdf4 in syck_mark_parser (parser=0x8986180) at rubyext.c:695
#12 0x0806d960 in gc_mark_children (ptr=1076127188, lev=0) at gc.c:926
#13 0x0806d563 in mark_locations_array (x=0xbffea6f4, n=21550) at gc.c:608
#14 0x0806e411 in rb_gc () at gc.c:1328
#15 0x0806d1b5 in rb_newobj () at gc.c:386
#16 0x0806f5de in hash_alloc (klass=0) at hash.c:183
#17 0x0806f643 in rb_hash_new () at hash.c:195
#18 0x4023becc in syck_parser_new (argc=0, argv=0x0, class=0) at rubyext.c:718
#19 0x08067cca in call_cfunc (func=0x4023be10 <syck_parser_new>, recv=1075714936, len=1075474116, argc=1,
    argv=0x0) at eval.c:4932
#20 0x0805bf62 in rb_call0 (klass=1075714916, recv=1075714936, id=3369, oid=0, argc=0, argv=0x0,
    body=0x401e1aec, nosuper=0) at eval.c:5066
#21 0x0805c7b8 in rb_call (klass=1075714916, recv=1075714936, mid=3369, argc=0, argv=0x0, scope=0)
    at eval.c:5287
#22 0x0805788c in rb_eval (self=1076001116, n=0x0) at ruby.h:631
#23 0x0805775f in rb_eval (self=1076001116, n=0x0) at eval.c:3070
#24 0x08057151 in rb_eval (self=1076001116, n=0x0) at eval.c:3259
#25 0x0805c228 in rb_call0 (klass=1076010696, recv=1076001116, id=9481, oid=0, argc=0, argv=0xbffebe5c,
    body=0x4022b50c, nosuper=0) at eval.c:5194
#26 0x0805c7b8 in rb_call (klass=1076010696, recv=1076001116, mid=9481, argc=1, argv=0xbffebe58, scope=0)
    at eval.c:5287
#27 0x0805788c in rb_eval (self=1077796572, n=0x0) at ruby.h:631
---Type <return> to continue, or q <return> to quit---
#28 0x0805c228 in rb_call0 (klass=1076343900, recv=1077796572, id=15785, oid=0, argc=0, argv=0xbffec69c,
    body=0x402c9a80, nosuper=0) at eval.c:5194
#29 0x0805c7b8 in rb_call (klass=1076343900, recv=1077796572, mid=15785, argc=1, argv=0xbffec698, scope=1)
    at eval.c:5287
#30 0x0805788c in rb_eval (self=1077796572, n=0x0) at ruby.h:631
#31 0x0805775f in rb_eval (self=1077796572, n=0x0) at eval.c:3070
#32 0x080570dd in rb_eval (self=1077796572, n=0x0) at eval.c:2959
#33 0x08057f15 in rb_eval (self=1077796572, n=0x0) at eval.c:3020
#34 0x0805c228 in rb_call0 (klass=1076343900, recv=1077796572, id=15863, oid=0, argc=0, argv=0xbffee1bc,
    body=0x402c7eb0, nosuper=0) at eval.c:5194
#35 0x0805c7b8 in rb_call (klass=1076343900, recv=1077796572, mid=15863, argc=1, argv=0xbffee1b8, scope=0)
    at eval.c:5287
#36 0x0805788c in rb_eval (self=1075492532, n=0x0) at ruby.h:631
#37 0x08057224 in rb_eval (self=1075492532, n=0x0) at eval.c:3279
#38 0x0805c228 in rb_call0 (klass=1076342500, recv=1075492532, id=2961, oid=0, argc=0, argv=0xbffef2e4,
    body=0x402bc77c, nosuper=0) at eval.c:5194
#39 0x0805c7b8 in rb_call (klass=1076342500, recv=1075492532, mid=2961, argc=3, argv=0xbffef2d8, scope=1)
    at eval.c:5287
#40 0x0805cb6e in rb_funcall2 (recv=1075474116, mid=0, argc=0, argv=0x0) at ruby.h:631
#41 0x0805f168 in rb_obj_call_init (obj=0, argc=0, argv=0x0) at eval.c:6430
#42 0x080838fc in rb_class_new_instance (argc=0, argv=0x0, klass=0) at object.c:849
#43 0x08067cca in call_cfunc (func=0x80838d0 <rb_class_new_instance>, recv=1076342500, len=1075474116,
    argc=1, argv=0x401ab6b4) at eval.c:4932
#44 0x0805bf62 in rb_call0 (klass=1075682552, recv=1076342500, id=3369, oid=0, argc=3, argv=0xbffef2d8,
    body=0x401d8b3c, nosuper=0) at eval.c:5066
#45 0x0805c7b8 in rb_call (klass=1075682552, recv=1076342500, mid=3369, argc=3, argv=0xbffef2d8, scope=0)
    at eval.c:5287
#46 0x0805788c in rb_eval (self=1077796572, n=0x0) at ruby.h:631
#47 0x08057938 in rb_eval (self=1077796572, n=0x0) at ruby.h:636
#48 0x0805c228 in rb_call0 (klass=1076343900, recv=1077796572, id=15865, oid=0, argc=0, argv=0xbfff018c,
    body=0x402c7d48, nosuper=0) at eval.c:5194
#49 0x0805c7b8 in rb_call (klass=1076343900, recv=1077796572, mid=15865, argc=1, argv=0xbfff0188, scope=0)
    at eval.c:5287
---Type <return> to continue, or q <return> to quit---
#50 0x0805788c in rb_eval (self=1078066992, n=0x0) at ruby.h:631
#51 0x08056c4b in rb_eval (self=1078066992, n=0x0) at eval.c:2796
#52 0x08056f2a in rb_eval (self=1078066992, n=0x0) at eval.c:2883
#53 0x0805706e in rb_eval (self=1078066992, n=0x0) at eval.c:2932
#54 0x0805a278 in rb_yield_0 (val=6933, self=1078066992, klass=0, flags=0, avalue=0) at eval.c:4293
#55 0x0805a7a9 in rb_yield (val=0) at eval.c:4346
#56 0x0808116f in int_dotimes (num=80001) at numeric.c:2380
#57 0x08067cd1 in call_cfunc (func=0x8081120 <int_dotimes>, recv=80001, len=1075474116, argc=1, argv=0x0)
    at eval.c:4935
#58 0x0805bf62 in rb_call0 (klass=1075664112, recv=80001, id=5401, oid=0, argc=0, argv=0x0, body=0x401d5428,
    nosuper=0) at eval.c:5066
#59 0x0805c7b8 in rb_call (klass=1075664112, recv=80001, mid=5401, argc=0, argv=0x0, scope=0) at eval.c:5287
#60 0x0805788c in rb_eval (self=1078066992, n=0x0) at ruby.h:631
#61 0x08056c4b in rb_eval (self=1078066992, n=0x0) at eval.c:2796
#62 0x0805c228 in rb_call0 (klass=1076658120, recv=1078066992, id=22721, oid=0, argc=0, argv=0xbfff2d60,
    body=0x402cb420, nosuper=0) at eval.c:5194
#63 0x0805c7b8 in rb_call (klass=1076658120, recv=1078066992, mid=22721, argc=2, argv=0xbfff2d58, scope=1)
    at eval.c:5287
#64 0x0805788c in rb_eval (self=1078066992, n=0x0) at ruby.h:631
#65 0x08056c4b in rb_eval (self=1078066992, n=0x0) at eval.c:2796
#66 0x0805c228 in rb_call0 (klass=1076658120, recv=1078066992, id=22697, oid=0, argc=0, argv=0xbfff3e3c,
    body=0x402ccfc8, nosuper=0) at eval.c:5194
#67 0x0805c7b8 in rb_call (klass=1076658120, recv=1078066992, mid=22697, argc=0, argv=0xbfff3e3c, scope=1)
    at eval.c:5287
#68 0x0805c9e5 in rb_f_send (argc=0, argv=0xbfff3e3c, recv=1078066992) at ruby.h:631
#69 0x08067cca in call_cfunc (func=0x805c970 <rb_f_send>, recv=1078066992, len=1075474116, argc=1,
    argv=0xbfff3e38) at eval.c:4932
#70 0x0805bf62 in rb_call0 (klass=1075682472, recv=1078066992, id=3889, oid=0, argc=1, argv=0xbfff3e38,
    body=0x401d7d90, nosuper=0) at eval.c:5066
#71 0x0805c7b8 in rb_call (klass=1075682472, recv=1078066992, mid=3889, argc=1, argv=0xbfff3e38, scope=1)
    at eval.c:5287
#72 0x0805788c in rb_eval (self=1078066992, n=0x0) at ruby.h:631
#73 0x08056f2a in rb_eval (self=1078066992, n=0x0) at eval.c:2883
---Type <return> to continue, or q <return> to quit---
#74 0x0805706e in rb_eval (self=1078066992, n=0x0) at eval.c:2932
#75 0x0805c228 in rb_call0 (klass=1076250360, recv=1078066992, id=5089, oid=0, argc=0, argv=0xbfff531c,
    body=0x402898e0, nosuper=0) at eval.c:5194
#76 0x0805c7b8 in rb_call (klass=1076250360, recv=1078066992, mid=5089, argc=1, argv=0xbfff5318, scope=0)
    at eval.c:5287
#77 0x0805788c in rb_eval (self=1078067192, n=0x0) at ruby.h:631
#78 0x080618d0 in block_pass (self=1078067192, node=0x402671c8) at eval.c:7383
#79 0x08058382 in rb_eval (self=1078067192, n=0x0) at eval.c:2782
#80 0x0805a278 in rb_yield_0 (val=1078066992, self=1078067192, klass=0, flags=0, avalue=0) at eval.c:4293
#81 0x0805a7a9 in rb_yield (val=0) at eval.c:4346
#82 0x080bdf5f in rb_ary_each (ary=1078067072) at array.c:1106
#83 0x08067cd1 in call_cfunc (func=0x80bdf30 <rb_ary_each>, recv=1078067072, len=1075474116, argc=1,
    argv=0x4041ff80) at eval.c:4935
#84 0x0805bf62 in rb_call0 (klass=1075652312, recv=1078067072, id=3833, oid=0, argc=0, argv=0x0,
    body=0x401d22b4, nosuper=0) at eval.c:5066
#85 0x0805c7b8 in rb_call (klass=1075652312, recv=1078067072, mid=3833, argc=0, argv=0x0, scope=0)
    at eval.c:5287
#86 0x0805788c in rb_eval (self=1078067192, n=0x0) at ruby.h:631
#87 0x08056c4b in rb_eval (self=1078067192, n=0x0) at eval.c:2796
#88 0x0805c228 in rb_call0 (klass=1076252700, recv=1078067192, id=5089, oid=0, argc=0, argv=0xbfff73bc,
    body=0x40267344, nosuper=0) at eval.c:5194
#89 0x0805c7b8 in rb_call (klass=1076252700, recv=1078067192, mid=5089, argc=1, argv=0xbfff73b8, scope=0)
    at eval.c:5287
#90 0x0805788c in rb_eval (self=1078083252, n=0x0) at ruby.h:631
#91 0x080618d0 in block_pass (self=1078083252, node=0x402671c8) at eval.c:7383
#92 0x08058382 in rb_eval (self=1078083252, n=0x0) at eval.c:2782
#93 0x0805a278 in rb_yield_0 (val=1078067192, self=1078083252, klass=0, flags=0, avalue=0) at eval.c:4293
#94 0x0805a7a9 in rb_yield (val=0) at eval.c:4346
#95 0x080bdf5f in rb_ary_each (ary=1078083212) at array.c:1106
#96 0x08067cd1 in call_cfunc (func=0x80bdf30 <rb_ary_each>, recv=1078083212, len=1075474116, argc=1,
    argv=0x40423e8c) at eval.c:4935
#97 0x0805bf62 in rb_call0 (klass=1075652312, recv=1078083212, id=3833, oid=0, argc=0, argv=0x0,
    body=0x401d22b4, nosuper=0) at eval.c:5066
---Type <return> to continue, or q <return> to quit---
#98 0x0805c7b8 in rb_call (klass=1075652312, recv=1078083212, mid=3833, argc=0, argv=0x0, scope=0)
    at eval.c:5287
#99 0x0805788c in rb_eval (self=1078083252, n=0x0) at ruby.h:631
#100 0x08056c4b in rb_eval (self=1078083252, n=0x0) at eval.c:2796
#101 0x0805c228 in rb_call0 (klass=1076252700, recv=1078083252, id=5089, oid=0, argc=0, argv=0xbfff945c,
    body=0x40267344, nosuper=0) at eval.c:5194
#102 0x0805c7b8 in rb_call (klass=1076252700, recv=1078083252, mid=5089, argc=1, argv=0xbfff9458, scope=0)
    at eval.c:5287
#103 0x0805788c in rb_eval (self=1078022992, n=0x0) at ruby.h:631
#104 0x08056c4b in rb_eval (self=1078022992, n=0x0) at eval.c:2796
#105 0x0805c228 in rb_call0 (klass=1078024312, recv=1078022992, id=24241, oid=0, argc=0, argv=0x0,
    body=0x4041b110, nosuper=0) at eval.c:5194
#106 0x0805c7b8 in rb_call (klass=1078024312, recv=1078022992, mid=24241, argc=0, argv=0x0, scope=0)
    at eval.c:5287
#107 0x0805788c in rb_eval (self=1078024352, n=0x0) at ruby.h:631
#108 0x08057f15 in rb_eval (self=1078024352, n=0x0) at eval.c:3020
#109 0x0805c228 in rb_call0 (klass=1078023772, recv=1078024352, id=24129, oid=0, argc=0, argv=0x0,
    body=0x4041d49c, nosuper=0) at eval.c:5194
#110 0x0805c7b8 in rb_call (klass=1078023772, recv=1078024352, mid=24129, argc=0, argv=0x0, scope=2)
    at eval.c:5287
#111 0x0805788c in rb_eval (self=1078024352, n=0x0) at ruby.h:631
#112 0x08057f15 in rb_eval (self=1078024352, n=0x0) at eval.c:3020
#113 0x0805c228 in rb_call0 (klass=1078023772, recv=1078024352, id=5009, oid=0, argc=0, argv=0x0,
    body=0x4041e1a8, nosuper=0) at eval.c:5194
#114 0x0805c7b8 in rb_call (klass=1078023772, recv=1078024352, mid=5009, argc=0, argv=0x0, scope=0)
    at eval.c:5287
#115 0x0805788c in rb_eval (self=1078023772, n=0x0) at ruby.h:631
#116 0x08057f15 in rb_eval (self=1078023772, n=0x0) at eval.c:3020
#117 0x0805c228 in rb_call0 (klass=1078023752, recv=1078023772, id=5089, oid=0, argc=0, argv=0xbfffce70,
    body=0x4041e7d4, nosuper=0) at eval.c:5194
#118 0x0805c7b8 in rb_call (klass=1078023752, recv=1078023772, mid=5089, argc=2, argv=0xbfffce68, scope=0)
    at eval.c:5287
#119 0x0805788c in rb_eval (self=1075530552, n=0x0) at ruby.h:631
---Type <return> to continue, or q <return> to quit---
#120 0x0805775f in rb_eval (self=1075530552, n=0x0) at eval.c:3070
#121 0x0805c228 in rb_call0 (klass=1076186120, recv=1075530552, id=5089, oid=0, argc=0, argv=0x0,
    body=0x40256724, nosuper=0) at eval.c:5194
#122 0x0805c7b8 in rb_call (klass=1076186120, recv=1075530552, mid=5089, argc=0, argv=0x0, scope=0)
    at eval.c:5287
#123 0x0805788c in rb_eval (self=1076186120, n=0x0) at ruby.h:631
#124 0x0805c228 in rb_call0 (klass=1076186060, recv=1076186120, id=5089, oid=0, argc=0, argv=0xbfffe51c,
    body=0x40262e98, nosuper=0) at eval.c:5194
#125 0x0805c7b8 in rb_call (klass=1076186060, recv=1076186120, mid=5089, argc=1, argv=0xbfffe518, scope=0)
    at eval.c:5287
#126 0x0805788c in rb_eval (self=1075677712, n=0x0) at ruby.h:631
#127 0x08057b5d in rb_eval (self=1075677712, n=0x0) at ruby.h:636
#128 0x0805a278 in rb_yield_0 (val=1075531012, self=1075677712, klass=0, flags=0, avalue=2) at eval.c:4293
#129 0x0806113a in proc_invoke (proc=1076184540, args=1075531012, self=6, klass=2) at ruby.h:631
#130 0x0805f613 in call_end_proc (data=0) at eval.c:6609
#131 0x0805f8e6 in rb_exec_end_proc () at eval.c:6669
#132 0x08053aeb in ruby_finalize_0 () at eval.c:1372
#133 0x08053b6f in ruby_cleanup (ex=0) at eval.c:1400
#134 0x08053d71 in ruby_stop (ex=0) at eval.c:1447
#135 0x08053dbf in ruby_run () at eval.c:1459
#136 0x08051f65 in main (argc=0, argv=0x0, envp=0xbffff8f0) at main.c:50
#137 0x4008cda6 in __libc_start_main () from /lib/libc.so.6



-- 
Running Debian GNU/Linux Sid (unstable)
batsman dot geo at yahoo dot com

We are Pentium of Borg.  Division is futile.  You will be approximated.
	-- seen in someone's .signature