The following error has been occurring in all 7.8 Pike versions for the past 9 months (at least). I have a production machine running Roxen which crashes on an error like this roughly once a day. I'm willing to make custom changes to the production environment in Roxen and/or Pike to track this one down. Things that slow down the production environment for more than a factor of three are not acceptable. Any suggestions on how to tackle this problem?
/data/src/gpike/src/gc.c:2519: GC fatal: Marked a thing without refs. **Block: 0xab493890 Type: object Refs: 0 **Got gc marker at 0xbcacbb0: flags=0x00000 refs=0 weak=0 xrefs=0 saved=-1 frame=(nil) **Program id: 66369 **The object is not on the object link list. **The object is destructed but program found from id. ******************* **Looking for references to 0xab493890: **Done looking for references to 0xab493890, found 0 refs. Pike was in GC stage 200 when this fatal occured. Backtrace at time of fatal: -:1: Buffer(16130 /* 23168 */)->`+=("' OR\n pdlnode.p30!='") /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/PXml.pike:302: RXML.PEnt(RXML.t_text(text/plain, xml-entity),RXML.CompositeTagSet(_user_tag+rxml_tag_set))->drain_output() /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/utils.pmod:197: RXML.utils->p_xml_entity_cb(RXML.PEnt(RXML.t_text(text/plain, xml-entity),RXML.CompositeTagSet(_user_tag+rxml_tag_set)),"&form.nrpropp30:mysql;") /usr/local/pike/7.8.409/lib/modules/Parser.pmod/_parser.so:1: RXML.PEnt(RXML.t_text(text/plain, xml-entity),RXML.CompositeTagSet(_user_tag+rxml_tag_set))->finish("SELECT COUNT(DISTINCT(pdloffer.id_pdloffer)) as aantal\n FROM pdloffer\n JOIN namedata ON (namedata.id = pdloffer.owner)\n JOIN pdlnode ON (pdlnode.id_pdlnode = pdloffer.id_pdlnode)\n JOIN pdltree ON "+[27495]) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/PXml.pike:389: RXML.PEnt(RXML.t_text(text/plain, xml-entity),RXML.CompositeTagSet(_user_tag+rxml_tag_set))->finish("SELECT COUNT(DISTINCT(pdloffer.id_pdloffer)) as aantal\n FROM pdloffer\n JOIN namedata ON (namedata.id = pdloffer.owner)\n JOIN pdlnode ON (pdlnode.id_pdlnode = pdloffer.id_pdlnode)\n JOIN pdltree ON "+[27495]) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:5491: RXML.PEnt(RXML.t_text(text/plain, xml-entity),RXML.CompositeTagSet(_user_tag+rxml_tag_set))->write_end("SELECT COUNT(DISTINCT(pdloffer.id_pdloffer)) as aantal\n FROM pdloffer\n JOIN namedata ON (namedata.id = pdloffer.owner)\n JOIN pdlnode ON (pdlnode.id_pdlnode = pdloffer.id_pdlnode)\n JOIN pdltree ON "+[27495]) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:6224: RXML.t_text(text/plain, xml-entity)->eval("SELECT COUNT(DISTINCT(pdloffer.id_pdloffer)) as aantal\n FROM pdloffer\n JOIN namedata ON (namedata.id = pdloffer.owner)\n JOIN "+[27566],Context(),RXML.CompositeTagSet(_user_tag+rxml_tag_set),UNDEFINED,UNDEFINED) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:350: TagSqlplugin(emit#sql)->eval_args(mapping[2],0,0,({"scope","filter","do-once","rowinfo","remainderinfo","skiprows","filter-exclude","sort","maxrows","source"})) modules/tags/rxmltags.pike:5985: Frame(emit)->do_enter(RequestID(/info/zoekresultaatmap.rxml?mode=rentpdriver&_id_pdlnode=449&geolat=52.4685437&geolng=4.6699539&id=810468&plaats=Beverwijk)) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:4520: Frame(emit)->_eval(@0=Context(),RXML.PXml(RXML.t_any(any, xml),RXML.CompositeTagSet(_user_tag+rxml_tag_set)),RXML.t_any(any, xml)) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:459: TagEmit(emit)->_p_xml_handle_tag(@1=RXML.PXml(RXML.t_any(any, xml),RXML.CompositeTagSet(_user_tag+rxml_tag_set)),mapping[2],"\n\n\n \n <set variable="var.numberresults" value="&_.aantal;" />\n \n") /usr/local/pike/7.8.409/lib/modules/Parser.pmod/_parser.so:1: RXML.PXml(RXML.t_any(any, xml),RXML.CompositeTagSet(_user_tag+rxml_tag_set))->finish("\n<emit query="SELECT COUNT(DISTINCT(pdloffer.id_pdloffer)) as aantal\n FROM pdloffer\n JOIN namedata ON (namedata.id = pdloffer.owner)\n JOIN pdlnode ON (pdlnode.id_pdlnode = pdloffer.id_pdlnode)\n JO"+[27598]) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/PXml.pike:389: RXML.PXml(RXML.t_any(any, xml),RXML.CompositeTagSet(_user_tag+rxml_tag_set))->finish("\n<emit query="SELECT COUNT(DISTINCT(pdloffer.id_pdloffer)) as aantal\n FROM pdloffer\n JOIN namedata ON (namedata.id = pdloffer.owner)\n JOIN pdlnode ON (pdlnode.id_pdlnode = pdloffer.id_pdlnode)\n JO"+[27598]) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:3819: Frame(eval)->_exec_array(@0,RXML.RenewablePCode(RXML.t_any(any, xml),RXML.CompositeTagSet(_user_tag+emit+rxml_tag_set)),({"\n<emit query="SELECT COUNT(DISTINCT(pdloffer.id_pdloffer)) as aantal\n FROM pdloffer\n JOIN "+[27704]}),"do_return") /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:4825: Frame(eval)->_eval(@0,@2=RXML.RenewablePCode(RXML.t_any(any, xml),RXML.CompositeTagSet(_user_tag+emit+rxml_tag_set)),@3=RXML.t_any(any, xml)) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:8835: RXML.RenewablePCode(RXML.t_any(any, xml),RXML.CompositeTagSet(_user_tag+emit+rxml_tag_set))->_eval(@0,0) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:9206: RXML.RenewablePCode(RXML.t_any(any, xml),RXML.CompositeTagSet(_user_tag+emit+rxml_tag_set))->_eval(@0,0) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:3865: UserTag.Frame(gettotalfornodemode)->_exec_array(@0,RXML.PCode(RXML.t_any(any, xml),RXMLTagSet(entreeding.com,rxml_tag_set)),({@2}),"do_return") /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:4825: UserTag.Frame(gettotalfornodemode)->_eval(@0,@4=RXML.PCode(RXML.t_any(any, xml),RXMLTagSet(entreeding.com,rxml_tag_set)),@3) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:8835: RXML.PCode(RXML.t_any(any, xml),RXMLTagSet(entreeding.com,rxml_tag_set))->_eval(@0,0) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:4775: Frame(set)->_eval(@0,RXML.PCode(RXML.t_html(text/html, xml),RXMLTagSet(entreeding.com,rxml_tag_set)),RXML.t_html(text/html, xml)) /usr/roxen/server-4.5.0/etc/modules/RXML.pmod/module.pmod:8835: 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:8243: 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/info/zoekresultaatmap.rxml", "r", 666 /* fd=39 */),"rxml",,,0) base_server/configuration.pike:2357: Configuration(entreeding.com)->low_get_file(@5,UNDEFINED) base_server/configuration.pike:2491: Configuration(entreeding.com)->get_file(@5,UNDEFINED,UNDEFINED) base_server/configuration.pike:2466: Configuration(entreeding.com)->handle_request(@5,UNDEFINED) protocols/http.pike:2823: RequestID(/info/zoekresultaatmap.rxml?mode=rentpdriver&_id_pdlnode=449&geolat=52.4685437&geolng=4.6699539&id=810468&plaats=Beverwijk)->handle_request() base_server/roxen.pike:849: roxen->handler_thread(23)