Martin Stjernholm, Roxen IS @ Pike developers forum wrote:
Looking around in the code some more I actually think the C stack might provide some clues (didn't think so before because of the queue system in the mark pass). Could you please post a couple of gdb backtraces, preferably but not necessarily together with the stderr log?
The first core is in: (I am keeping the cores around, BTW, so I'm able to check specific locations for values, either in the heap or on the stack; just ask).
#6 0x08112791 in debug_gc_fatal_2 (a=0xb35dbd40, type=3, flags=1, fmt=0x82efc13 "Marked a thing without refs.\n") at /data/src/gpike/src/gc.c:1041 #7 0x081128e9 in real_gc_mark (a=0xb35dbd40, type=3) at /data/src/gpike/src/gc.c:2519 #8 0x081687ec in gc_mark_object_as_referenced (o=0xb35dbd40) at /data/src/gpike/src/object.c:2035 #9 0x081c93a3 in run_queue (q=0x837893c) at /data/src/gpike/src/queue.c:48 #10 0x0811468c in do_gc (ignored=0x8b115b8, explicit_call=0) at /data/src/gpike/src/gc.c:3545 #11 0x080e08f0 in low_call_callback (lst=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece. ) at /data/src/gpike/src/callback.c:168 #12 0x08096086 in low_mega_apply (type=APPLY_LOW, args=<value optimized out>, ---Type <return> to continue, or q <return> to quit--- arg1=0x8c6a278, arg2=0x0) at /data/src/gpike/src/apply_low.h:225 #13 0x0809c00b in jump_opcode_F_CALL_OTHER (arg1=1) at /data/src/gpike/src/interpret_functions.h:2070 #14 0xb453b18f in ?? () #15 0x080938e4 in eval_instruction ( pc=0xb6de49bf "\213\r\020|7\b\270A\266!I\367؉A\034\350\034\006*Q\213\r\020|7\b\270,\266!I\367؉A\034\203A\034\020\307\004$\001") at /data/src/gpike/src/interpret.c:1421 #16 0x0809441f in catching_eval_instruction (pc=<value optimized out>) at /data/src/gpike/src/interpret.c:2245 #17 0x0809467b in jump_opcode_F_CATCH () at /data/src/gpike/src/interpret_functions.h:1287 #18 0xb6d2b62d in ?? () #19 0x080938e4 in eval_instruction ( pc=0xb6d2b580 "\213\r\020|7\b\270\200J-I\367؉A\034\307\004$\001") at /data/src/gpike/src/interpret.c:1421 #20 0x08097f28 in mega_apply (type=APPLY_STACK, args=2, arg1=0x0, arg2=0x0) at /data/src/gpike/src/interpret.c:2213 #21 0x0809a4a9 in f_call_function (args=2) at /data/src/gpike/src/interpret.c:2266 #22 0x081c88aa in new_thread_func (data=0xbfa040cc) at /data/src/gpike/src/threads.c:1111 #23 0xb7f25585 in start_thread (arg=0xb49c7b70) at pthread_create.c:300 ---Type <return> to continue, or q <return> to quit--- #24 0xb7e742be in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 (gdb)
Stderr output: /data/src/gpike/src/gc.c:2519: GC fatal: Marked a thing without refs. **Block: 0xb35dbd40 Type: object Refs: 0 **Got gc marker at 0xb1b0f890: flags=0x00000 refs=0 weak=0 xrefs=0 saved=-1 frame=(nil) **Program id: 166647 **The object is not on the object link list. **The object is destructed and program not found from id. ******************* **Looking for references to 0xb35dbd40: **Done looking for references to 0xb35dbd40, found 0 refs. Pike was in GC stage 200 when this fatal occurred. Backtrace at time of fatal: -:1: _cur_rxml_context->get() modules/tags/rxmltags.pike:4848: UserTag.Frame(showday)->do_enter(RequestID(/m/ember/smsoutbox3.rxml)) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:4654: UserTag.Frame(showday)->_eval(Context(),RXML.PCode(RXML.t_html(text/html, xml),RXML.CompositeTagSet(_user_tag+emit+rxml_tag_set)),RXML.t_html(text/html, xml)) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:9027: RXML.PCode(RXML.t_html(text/html, xml),RXML.CompositeTagSet(_user_tag+emit+rxml_tag_set))->_eval(@0=Context(),0) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:4923: Frame(if)->_eval(@0,RXML.PCode(RXML.t_html(text/html, xml),RXML.CompositeTagSet(_user_tag+emit+rxml_tag_set)),@1=RXML.t_html(text/html, xml)) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:9027: RXML.PCode(RXML.t_html(text/html, xml),RXML.CompositeTagSet(_user_tag+emit+rxml_tag_set))->_eval(@0,0) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:4923: Frame(else)->_eval(@0,RXML.RenewablePCode(RXML.t_html(text/html, xml),RXML.CompositeTagSet(_user_tag+emit+rxml_tag_set)),@1) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:9027: RXML.RenewablePCode(RXML.t_html(text/html, xml),RXML.CompositeTagSet(_user_tag+emit+rxml_tag_set))->_eval(@0,0) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:9398: RXML.RenewablePCode(RXML.t_html(text/html, xml),RXML.CompositeTagSet(_user_tag+emit+rxml_tag_set))->_eval(@0,0) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:3957: UserTag.Frame(showdatetime)->_exec_array(@0,RXML.PCode(RXML.t_html(text/html, xml),RXML.CompositeTagSet(emit+rxml_tag_set)),({@2=RXML.RenewablePCode(RXML.t_html(text/html, xml),RXML.CompositeTagSet(_user_tag+emit+rxml_tag_set))}),"do_return") /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:4990: UserTag.Frame(showdatetime)->_eval(@0,@3=RXML.PCode(RXML.t_html(text/html, xml),RXML.CompositeTagSet(emit+rxml_tag_set)),@1) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:9027: RXML.PCode(RXML.t_html(text/html, xml),RXML.CompositeTagSet(emit+rxml_tag_set))->_eval(@0,0) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:4923: Frame(emit)->_eval(@0,RXML.PCode(RXML.t_html(text/html, xml),RXMLTagSet(entreeding.com,rxml_tag_set)),@1) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:9027: RXML.PCode(RXML.t_html(text/html, xml),RXMLTagSet(entreeding.com,rxml_tag_set))->_eval(@0,0) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:4923: Frame(else)->_eval(@0,RXML.PCode(RXML.t_html(text/html, xml),RXMLTagSet(entreeding.com,rxml_tag_set)),@1) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:9027: RXML.PCode(RXML.t_html(text/html, xml),RXMLTagSet(entreeding.com,rxml_tag_set))->_eval(@0,0) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:8435: RXML.PCode(RXML.t_html(text/html, xml),RXMLTagSet(entreeding.com,rxml_tag_set))->eval(@0,UNDEFINED) modules/tags/rxmlparse.pike:171: RoxenModule(entreeding.com/rxmlparse#0)->handle_file_extension(Stdio.File("/home/entreeding/m/ember/smsoutbox3.rxml", "r", 666 /* fd=30 */),"rxml",@4=RequestID(/m/ember/smsoutbox3.rxml)) base_server/configuration.pike:2361: Configuration(entreeding.com)->low_get_file(@4,UNDEFINED) base_server/configuration.pike:2495: Configuration(entreeding.com)->get_file(@4,UNDEFINED,UNDEFINED) base_server/configuration.pike:2470: Configuration(entreeding.com)->handle_request(@4,UNDEFINED) protocols/http.pike:2827: RequestID(/m/ember/smsoutbox3.rxml)->handle_request() base_server/roxen.pike:849: roxen()->handler_thread(23)