Since it is OS X, did you try to enable any of the malloc debug (man
malloc)? There are a whole bunch of env vars that can be set, sometimes they
provide useful information.
Dan


On Feb 9, 2008 12:37 PM, Luc Heinrich <[EMAIL PROTECTED]> wrote:

> Greetings,
>
> So my last posts about crashes in 'ruby_xml_xpath_object_mark' turned
> out to be a non-issue since the problem is already fixed. However,
> I'm still getting *lots* of random crashes which prevent my web
> application to stay up for more than 10mn, which is of course
> unacceptable.
>
> The strange thing is that those crashes have different code paths but
> all end up in the system malloc. Here are four examples...
>
> Example 1:
>
> 0   libSystem.B.dylib           0x90003cf4 szone_malloc + 956
> 1   libSystem.B.dylib           0x90003600 malloc + 632
> 2   libxml2.2.dylib             0x015615e8 xmlXPathNodeSetCreate + 56
> 3   libxml2.2.dylib             0x01561764 xmlXPathNewNodeSet + 116
> 4   libxml2.2.dylib             0x01572b14 xmlXPathRunStreamEval + 148
> 5   libxml2.2.dylib             0x01572f28 xmlXPathRunEval + 248
> 6   libxml2.2.dylib             0x015737fc xmlXPathCompiledEvalInternal
> + 364
> 7   libxml2.2.dylib             0x01573950 xmlXPathCompiledEval + 32
> 8   libxml_so.bundle            0x01132c38 ruby_xml_xpath_find + 472
> 9   libxml_so.bundle            0x01132d58 ruby_xml_xpath_find2 + 56
> 10  libxml_so.bundle            0x0112978c ruby_xml_node_find + 96
> 11  libxml_so.bundle            0x011297b0 ruby_xml_node_find_first + 16
> 12  libruby.dylib               0x002254dc call_cfunc + 256
> 13  libruby.dylib               0x00224b20 rb_call0 + 1168
> ....
>
> Example 2:
>
> 0   libSystem.B.dylib           0x90003cf4 szone_malloc + 956
> 1   libSystem.B.dylib           0x90003600 malloc + 632
> 2   libxml2.2.dylib             0x01561728 xmlXPathNewNodeSet + 56
> 3   libxml2.2.dylib             0x01570b54 xmlXPathCompOpEvalPredicate +
> 260
> 4   libxml2.2.dylib             0x015719c4 xmlXPathNodeCollectAndTest +
> 3380
> 5   libxml2.2.dylib             0x0156fa28 xmlXPathCompOpEval + 2072
> 6   libxml2.2.dylib             0x015703a0 xmlXPathCompOpEval + 4496
> 7   libxml2.2.dylib             0x01572fe8 xmlXPathRunEval + 440
> 8   libxml2.2.dylib             0x015737fc xmlXPathCompiledEvalInternal
> + 364
> 9   libxml2.2.dylib             0x01573950 xmlXPathCompiledEval + 32
> 10  libxml_so.bundle            0x01132c38 ruby_xml_xpath_find + 472
> 11  libxml_so.bundle            0x01132d58 ruby_xml_xpath_find2 + 56
> 12  libxml_so.bundle            0x0112978c ruby_xml_node_find + 96
> 13  libxml_so.bundle            0x011297b0 ruby_xml_node_find_first + 16
> 14  libruby.dylib               0x002254dc call_cfunc + 256
> 15  libruby.dylib               0x00224b20 rb_call0 + 1168
> ....
>
> Example 3:
>
> 0   libSystem.B.dylib           0x90003cf4 szone_malloc + 956
> 1   libSystem.B.dylib           0x90003600 malloc + 632
> 2   libruby.dylib               0x002379d8 ruby_xmalloc + 136
> 3   libruby.dylib               0x0021f268 rb_eval + 6780
> 4   libruby.dylib               0x0021dd44 rb_eval + 1368
> 5   libruby.dylib               0x00225148 rb_call0 + 2744
> 6   libruby.dylib               0x00225b18 rb_call + 600
> 7   libruby.dylib               0x0021f41c rb_eval + 7216
> 8   libruby.dylib               0x0021dd44 rb_eval + 1368
> 9   libruby.dylib               0x0021f220 rb_eval + 6708
> 10  libruby.dylib               0x0021f298 rb_eval + 6828
> 11  libruby.dylib               0x00222c24 rb_yield_0 + 1368
> 12  libruby.dylib               0x00223070 rb_yield_values + 180
> 13  libruby.dylib               0x00215b2c each_with_index_i + 48
> ....
>
> Example 4:
>
> 0   libSystem.B.dylib           0x90003cf4 szone_malloc + 956
> 1   libSystem.B.dylib           0x90003600 malloc + 632
> 2   libxml2.2.dylib             0x0158a918 xmlStrndup + 72
> 3   libxml2.2.dylib             0x01530fc4 xmlNewPropInternal + 340
> 4   libxml2.2.dylib             0x015e2fbc xmlSAX2StartElementNs + 1468
> 5   libxml2.2.dylib             0x0151bbbc xmlParseStartTag2 + 3612
> 6   libxml2.2.dylib             0x015282cc xmlParseElement + 220
> 7   libxml2.2.dylib             0x01526ae8 xmlParseContent + 312
> 8   libxml2.2.dylib             0x015284d8 xmlParseElement + 744
> 9   libxml2.2.dylib             0x01526ae8 xmlParseContent + 312
> 10  libxml2.2.dylib             0x015284d8 xmlParseElement + 744
> 11  libxml2.2.dylib             0x01526ae8 xmlParseContent + 312
> 12  libxml2.2.dylib             0x015284d8 xmlParseElement + 744
> 13  libxml2.2.dylib             0x01526ae8 xmlParseContent + 312
> 14  libxml2.2.dylib             0x015284d8 xmlParseElement + 744
> 15  libxml2.2.dylib             0x01528c38 xmlParseDocument + 1096
> 16  libxml_so.bundle            0x0112de60 ruby_xml_parser_parse + 96
> 17  libruby.dylib               0x002254f0 call_cfunc + 276
> ....
>
> I have a bad feeling about these problems, I don't see why malloc
> would crash.
>
> Anyone have an idea ? This is on OS X by the way.
>
> --
> Luc Heinrich
>
>
> _______________________________________________
> libxml-devel mailing list
> libxml-devel@rubyforge.org
> http://rubyforge.org/mailman/listinfo/libxml-devel
>
_______________________________________________
libxml-devel mailing list
libxml-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/libxml-devel

Reply via email to