Calvin, This may have nothing to do with the latest code changes. There are still plenty of features that have not been fixed (like I just did for xpath). The parser class is one. I looked at the _xpath_context code and there does not appear to be much of an opportunity for corruption there.
Are you only working with libxml via the TAP class? Are you parsing a lot of documents or doing a lot of access to few documents? If you change the use pattern, does it change the frequency of segv? Do all the SEGV have a garbage_collect at about this position? That being said, the parser is the next thing I will fix. It has some particularly concerning code in it and would not be surprised if this is from that. Dan On Sep 21, 2007, at 20:39, Calvin Bascom wrote: > Dan, > > This one occurs even less frequently than the last one, but > unfortunately it still segfaults occasionally when garbage collection > kicks in. It appears to crop up in random places (inside active- > record, > inside erb, etc.) instead of just when the XML document access is > occurring like the previous ones, so I'm not sure any of the > backtraces > are worth anything for this one. The backtrace below which I included > just in case is the only one that has even had a reference in it to > anything libxml related, they all have garbage collection in common > though. > > Calvin > > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread -1208449344 (LWP 29695)] > 0x006cda7b in malloc_consolidate () from /lib/libc.so.6 > (gdb) bt > #0 0x006cda7b in malloc_consolidate () from /lib/libc.so.6 > #1 0x006ce165 in _int_free () from /lib/libc.so.6 > #2 0x006ce72b in free () from /lib/libc.so.6 > #3 0x0027e103 in xmlHashFree () from /usr/lib/libxml2.so.2 > #4 0x002a2c8e in xmlXPathRegisteredFuncsCleanup () from > /usr/lib/libxml2.so.2 > #5 0x002a3e40 in xmlXPathFreeContext () from /usr/lib/libxml2.so.2 > #6 0x00ea5a8c in ruby_xml_xpath_context_free (rxxpc=0x8efb560) at > ruby_xml_xpath_context.c:28 > #7 0x00dad48f in garbage_collect () at gc.c:1209 > #8 0x00dad658 in ruby_xmalloc (size=97804) at gc.c:103 > #9 0x00df3bba in str_new (klass=Variable "klass" is not available. > ) at string.c:92 > #10 0x00df8508 in rb_str_plus (str1=3065727700, str2=3065727380) at > string.c:391 > #11 0x00d900b8 in call_cfunc (func=0xdf84d4 <rb_str_plus>, > recv=3065727700, len=Variable "len" is not available. > ) at eval.c:5665 > #12 0x00d9a4dd in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5815 > #13 0x00d9b106 in rb_call (klass=3086505960, recv=3065727700, mid=43, > argc=1, argv=0xbf9518b0, scope=0, self=3065785320) at eval.c:6062 > #14 0x00d97129 in rb_eval (self=3065785320, n=Variable "n" is not > available. > ) at eval.c:3447 > #15 0x00d970ba in rb_eval (self=3065785320, n=Variable "n" is not > available. > ) at eval.c:3442 > #16 0x00d98177 in rb_eval (self=3065785320, n=Variable "n" is not > available. > ) at eval.c:3424 > #17 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #18 0x00d9b106 in rb_call (klass=3083080640, recv=3065785320, > mid=53641, > argc=0, argv=0x0, scope=2, self=3065785320) at eval.c:6062 > #19 0x00d9869e in rb_eval (self=Variable "self" is not available. > ) at eval.c:3468 > #20 0x00d97cb7 in rb_eval (self=3065785320, n=Variable "n" is not > available. > ) at eval.c:3628 > #21 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #22 0x00d9b106 in rb_call (klass=3083160680, recv=3065785320, > mid=56497, > argc=0, argv=0x0, scope=2, self=3065785320) at eval.c:6062 > #23 0x00d9869e in rb_eval (self=Variable "self" is not available. > ) at eval.c:3468 > #24 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #25 0x00d9b106 in rb_call (klass=3083157600, recv=3065785320, > mid=12585, > argc=0, argv=0x0, scope=2, self=3065785320) at eval.c:6062 > #26 0x00d9869e in rb_eval (self=Variable "self" is not available. > ) at eval.c:3468 > #27 0x00d97cb7 in rb_eval (self=3065785320, n=Variable "n" is not > available. > ) at eval.c:3628 > #28 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #29 0x00d9b106 in rb_call (klass=3083080640, recv=3065785320, > mid=53609, > argc=0, argv=0x0, scope=2, self=3065785320) at eval.c:6062 > #30 0x00d9869e in rb_eval (self=Variable "self" is not available. > ) at eval.c:3468 > #31 0x00d97cb7 in rb_eval (self=3065785320, n=Variable "n" is not > available. > ) at eval.c:3628 > #32 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #33 0x00d9b106 in rb_call (klass=3083160680, recv=3065785320, > mid=51809, > argc=0, argv=0x0, scope=2, self=3065785320) at eval.c:6062 > #34 0x00d9869e in rb_eval (self=Variable "self" is not available. > ) at eval.c:3468 > #35 0x00d96db2 in rb_eval (self=3065785320, n=Variable "n" is not > available. > ) at eval.c:3614 > #36 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #37 0x00d9b106 in rb_call (klass=3083080640, recv=3065785320, > mid=53455, > argc=0, argv=0x0, scope=1, self=3065785320) at eval.c:6062 > #38 0x00d9723f in rb_eval (self=Variable "self" is not available. > ) at eval.c:3462 > #39 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #40 0x00d9b106 in rb_call (klass=3083163700, recv=3065785320, > mid=56071, > argc=0, argv=0x0, scope=1, self=3065785320) at eval.c:6062 > #41 0x00d9723f in rb_eval (self=Variable "self" is not available. > ) at eval.c:3462 > #42 0x00d9d501 in rb_yield_0 (val=Variable "val" is not available. > ) at eval.c:4991 > #43 0x00d9880b in rb_eval (self=3065931960, n=Variable "n" is not > available. > ) at eval.c:3252 > #44 0x00d99674 in rb_eval (self=3065931960, n=Variable "n" is not > available. > ) at eval.c:3263 > #45 0x00d99a62 in rb_eval (self=3065931960, n=Variable "n" is not > available. > ) at eval.c:3311 > #46 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #47 0x00d9b106 in rb_call (klass=3084869620, recv=3065931960, > mid=55513, > argc=1, argv=0xbf956480, scope=0, self=3065414060) at eval.c:6062 > #48 0x00d97129 in rb_eval (self=3065414060, n=Variable "n" is not > available. > ) at eval.c:3447 > #49 0x00da251d in block_pass (self=3065414060, node=0xb7d6e5cc) at > eval.c:8871 > #50 0x00d97c5a in rb_eval (self=3065414060, n=Variable "n" is not > available. > ) at eval.c:3163 > #51 0x00d97cb7 in rb_eval (self=3065414060, n=Variable "n" is not > available. > ) at eval.c:3628 > #52 0x00d99674 in rb_eval (self=3065414060, n=Variable "n" is not > available. > ) at eval.c:3263 > #53 0x00d99a62 in rb_eval (self=3065414060, n=Variable "n" is not > available. > ) at eval.c:3311 > #54 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #55 0x00d9b106 in rb_call (klass=3083136420, recv=3065414060, > mid=55513, > argc=0, argv=0xbf9578f0, scope=0, self=3065785320) at eval.c:6062 > #56 0x00d97129 in rb_eval (self=3065785320, n=Variable "n" is not > available. > ) at eval.c:3447 > #57 0x00da251d in block_pass (self=3065785320, node=0xb7d6b750) at > eval.c:8871 > #58 0x00d97c5a in rb_eval (self=3065785320, n=Variable "n" is not > available. > ) at eval.c:3163 > #59 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #60 0x00d9b106 in rb_call (klass=3083137420, recv=3065785320, > mid=55513, > argc=0, argv=0x0, scope=1, self=3065785320) at eval.c:6062 > #61 0x00d9723f in rb_eval (self=Variable "self" is not available. > ) at eval.c:3462 > #62 0x00d99e99 in rb_eval (self=3065785320, n=Variable "n" is not > available. > ) at eval.c:3177 > #63 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #64 0x00d9b106 in rb_call (klass=3083137420, recv=3065785320, > mid=51823, > argc=0, argv=0x0, scope=0, self=3065797980) at eval.c:6062 > #65 0x00d97129 in rb_eval (self=3065797980, n=Variable "n" is not > available. > ) at eval.c:3447 > #66 0x00d9d501 in rb_yield_0 (val=Variable "val" is not available. > ) at eval.c:4991 > #67 0x00d9880b in rb_eval (self=3065931960, n=Variable "n" is not > available. > ) at eval.c:3252 > #68 0x00d99674 in rb_eval (self=3065931960, n=Variable "n" is not > available. > ) at eval.c:3263 > #69 0x00d99a62 in rb_eval (self=3065931960, n=Variable "n" is not > available. > ) at eval.c:3311 > #70 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > ---Type <return> to continue, or q <return> to quit--- > #71 0x00d9b106 in rb_call (klass=3084869620, recv=3065931960, > mid=55513, > argc=1, argv=0xbf959e10, scope=0, self=3065414060) at eval.c:6062 > #72 0x00d97129 in rb_eval (self=3065414060, n=Variable "n" is not > available. > ) at eval.c:3447 > #73 0x00da251d in block_pass (self=3065414060, node=0xb7d6e5cc) at > eval.c:8871 > #74 0x00d97c5a in rb_eval (self=3065414060, n=Variable "n" is not > available. > ) at eval.c:3163 > #75 0x00d97cb7 in rb_eval (self=3065414060, n=Variable "n" is not > available. > ) at eval.c:3628 > #76 0x00d99674 in rb_eval (self=3065414060, n=Variable "n" is not > available. > ) at eval.c:3263 > #77 0x00d99a62 in rb_eval (self=3065414060, n=Variable "n" is not > available. > ) at eval.c:3311 > #78 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #79 0x00d9b106 in rb_call (klass=3083136420, recv=3065414060, > mid=55513, > argc=0, argv=0x0, scope=0, self=3065797980) at eval.c:6062 > #80 0x00d97129 in rb_eval (self=3065797980, n=Variable "n" is not > available. > ) at eval.c:3447 > #81 0x00d99e99 in rb_eval (self=3065797980, n=Variable "n" is not > available. > ) at eval.c:3177 > #82 0x00d99674 in rb_eval (self=3065797980, n=Variable "n" is not > available. > ) at eval.c:3263 > #83 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #84 0x00d9b106 in rb_call (klass=3065549560, recv=3065797980, > mid=12585, > argc=0, argv=0xbf95c164, scope=1, self=6) at eval.c:6062 > #85 0x00d9b789 in rb_f_send (argc=0, argv=0xbf95c164, recv=3065797980) > at eval.c:6110 > #86 0x00d900d6 in call_cfunc (func=0xd9b6e4 <rb_f_send>, > recv=3065797980, len=Variable "len" is not available. > ) at eval.c:5659 > #87 0x00d9a4dd in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5815 > #88 0x00d9b106 in rb_call (klass=3086515360, recv=3065797980, > mid=4049, > argc=1, argv=0xbf95c160, scope=1, self=3065797980) at eval.c:6062 > #89 0x00d9723f in rb_eval (self=Variable "self" is not available. > ) at eval.c:3462 > #90 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #91 0x00d9b106 in rb_call (klass=3069736560, recv=3065797980, > mid=69129, > argc=0, argv=0x0, scope=2, self=3065797980) at eval.c:6062 > #92 0x00d9869e in rb_eval (self=Variable "self" is not available. > ) at eval.c:3468 > #93 0x00d983ed in rb_eval (self=3065797980, n=Variable "n" is not > available. > ) at eval.c:3391 > #94 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #95 0x00d9b106 in rb_call (klass=3069662980, recv=3065797980, > mid=69097, > argc=2, argv=0xbf95d000, scope=1, self=3065797980) at eval.c:6062 > #96 0x00d9723f in rb_eval (self=Variable "self" is not available. > ) at eval.c:3462 > #97 0x00d97cb7 in rb_eval (self=3065797980, n=Variable "n" is not > available. > ) at eval.c:3628 > #98 0x00d9d501 in rb_yield_0 (val=Variable "val" is not available. > ) at eval.c:4991 > #99 0x00d9880b in rb_eval (self=3065492240, n=Variable "n" is not > available. > ) at eval.c:3252 > #100 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #101 0x00d9b106 in rb_call (klass=3069491600, recv=3065492240, > mid=5265, > argc=1, argv=0xbf95de30, scope=0, self=3065797980) at eval.c:6062 > #102 0x00d97129 in rb_eval (self=3065797980, n=Variable "n" is not > available. > ) at eval.c:3447 > #103 0x00d99e99 in rb_eval (self=3065797980, n=Variable "n" is not > available. > ) at eval.c:3177 > #104 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #105 0x00d9b106 in rb_call (klass=3069662980, recv=3065797980, > mid=69097, argc=2, argv=0xbf95e730, scope=1, self=3065797980) at > eval.c:6062 > #106 0x00d9723f in rb_eval (self=Variable "self" is not available. > ) at eval.c:3462 > #107 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #108 0x00d9b106 in rb_call (klass=3069662980, recv=3065797980, > mid=68481, argc=0, argv=0x0, scope=2, self=3065797980) at eval.c:6062 > #109 0x00d9869e in rb_eval (self=Variable "self" is not available. > ) at eval.c:3468 > #110 0x00d9d501 in rb_yield_0 (val=Variable "val" is not available. > ) at eval.c:4991 > #111 0x00d9880b in rb_eval (self=3082862180, n=Variable "n" is not > available. > ) at eval.c:3252 > #112 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #113 0x00d9b106 in rb_call (klass=3082862080, recv=3082862180, > mid=57129, argc=0, argv=0x0, scope=0, self=3065797980) at eval.c:6062 > #114 0x00d97129 in rb_eval (self=3065797980, n=Variable "n" is not > available. > ) at eval.c:3447 > #115 0x00d99e99 in rb_eval (self=3065797980, n=Variable "n" is not > available. > ) at eval.c:3177 > #116 0x00d9704d in rb_eval (self=3065797980, n=Variable "n" is not > available. > ) at eval.c:3441 > #117 0x00d985d1 in rb_eval (self=3065797980, n=Variable "n" is not > available. > ) at eval.c:3796 > #118 0x00d9704d in rb_eval (self=3065797980, n=Variable "n" is not > available. > ) at eval.c:3441 > #119 0x00d97cb7 in rb_eval (self=3065797980, n=Variable "n" is not > available. > ) at eval.c:3628 > #120 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #121 0x00d9b106 in rb_call (klass=3069662960, recv=3065797980, > mid=68377, argc=0, argv=0x0, scope=2, self=3065797980) at eval.c:6062 > #122 0x00d9869e in rb_eval (self=Variable "self" is not available. > ) at eval.c:3468 > #123 0x00d99674 in rb_eval (self=3065797980, n=Variable "n" is not > available. > ) at eval.c:3263 > #124 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #125 0x00d9b106 in rb_call (klass=3069662920, recv=3065797980, > mid=63513, argc=0, argv=0xbf9618f4, scope=1, self=6) at eval.c:6062 > #126 0x00d9b789 in rb_f_send (argc=0, argv=0xbf9618f4, > recv=3065797980) > at eval.c:6110 > #127 0x00d900d6 in call_cfunc (func=0xd9b6e4 <rb_f_send>, > recv=3065797980, len=Variable "len" is not available. > ) at eval.c:5659 > #128 0x00d9a4dd in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5815 > #129 0x00d9b106 in rb_call (klass=3086515360, recv=3065797980, > mid=4049, > argc=1, argv=0xbf9618f0, scope=1, self=3065797980) at eval.c:6062 > #130 0x00d9723f in rb_eval (self=Variable "self" is not available. > ) at eval.c:3462 > #131 0x00d99a62 in rb_eval (self=3065797980, n=Variable "n" is not > available. > ) at eval.c:3311 > #132 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #133 0x00d9b106 in rb_call (klass=3069736560, recv=3065797980, > mid=69121, argc=3, argv=0xbf962230, scope=1, self=3065797980) at > eval.c:6062 > #134 0x00d9723f in rb_eval (self=Variable "self" is not available. > ) at eval.c:3462 > #135 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #136 0x00d9b106 in rb_call (klass=3069662980, recv=3065797980, > mid=71297, argc=3, argv=0xbf962820, scope=1, self=3065797980) at > eval.c:6062 > #137 0x00d9723f in rb_eval (self=Variable "self" is not available. > ) at eval.c:3462 > #138 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #139 0x00d9b106 in rb_call (klass=3069654620, recv=3065797980, > mid=30209, argc=2, argv=0xbf962e30, scope=0, self=3065549560) at > eval.c:6062 > #140 0x00d97129 in rb_eval (self=3065549560, n=Variable "n" is not > available. > ) at eval.c:3447 > #141 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > ---Type <return> to continue, or q <return> to quit--- > #142 0x00d9b106 in rb_call (klass=3069736440, recv=3065549560, > mid=30209, argc=2, argv=0xbf963420, scope=0, self=3066734700) at > eval.c:6062 > #143 0x00d97129 in rb_eval (self=3066734700, n=Variable "n" is not > available. > ) at eval.c:3447 > #144 0x00d9704d in rb_eval (self=3066734700, n=Variable "n" is not > available. > ) at eval.c:3441 > #145 0x00d99674 in rb_eval (self=3066734700, n=Variable "n" is not > available. > ) at eval.c:3263 > #146 0x00d99a62 in rb_eval (self=3066734700, n=Variable "n" is not > available. > ) at eval.c:3311 > #147 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #148 0x00d9b106 in rb_call (klass=3066734680, recv=3066734700, > mid=49913, argc=3, argv=0xbf964350, scope=0, self=3066708100) at > eval.c:6062 > #149 0x00d97129 in rb_eval (self=3066708100, n=Variable "n" is not > available. > ) at eval.c:3447 > #150 0x00d9d501 in rb_yield_0 (val=Variable "val" is not available. > ) at eval.c:4991 > #151 0x00d9e7a2 in rb_yield (val=6) at eval.c:5073 > #152 0x00d95071 in rb_ensure (b_proc=0xd9e78c <rb_yield>, data1=6, > e_proc=0x5164c8 <rb_mutex_unlock>, data2=3066707980) at eval.c:5456 > #153 0x005165f2 in rb_mutex_synchronize (self=3066707980) at > fastthread.c:526 > #154 0x00d900c7 in call_cfunc (func=0x5165c0 <rb_mutex_synchronize>, > recv=3066707980, len=Variable "len" is not available. > ) at eval.c:5662 > #155 0x00d9a4dd in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5815 > #156 0x00d9b106 in rb_call (klass=3083146280, recv=3066707980, > mid=11689, argc=0, argv=0x0, scope=0, self=3066708100) at eval.c:6062 > #157 0x00d97129 in rb_eval (self=3066708100, n=Variable "n" is not > available. > ) at eval.c:3447 > #158 0x00d99e99 in rb_eval (self=3066708100, n=Variable "n" is not > available. > ) at eval.c:3177 > #159 0x00d99674 in rb_eval (self=3066708100, n=Variable "n" is not > available. > ) at eval.c:3263 > #160 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #161 0x00d9b106 in rb_call (klass=3084352760, recv=3066708100, > mid=30209, argc=2, argv=0xbf9659b0, scope=0, self=3083667360) at > eval.c:6062 > #162 0x00d97129 in rb_eval (self=3083667360, n=Variable "n" is not > available. > ) at eval.c:3447 > #163 0x00d9d501 in rb_yield_0 (val=Variable "val" is not available. > ) at eval.c:4991 > #164 0x00d9e7a2 in rb_yield (val=3066708100) at eval.c:5073 > #165 0x00d7f14a in rb_ary_each (ary=3066707820) at array.c:1138 > #166 0x00d900c7 in call_cfunc (func=0xd7f10c <rb_ary_each>, > recv=3066707820, len=Variable "len" is not available. > ) at eval.c:5662 > #167 0x00d9a4dd in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5815 > #168 0x00d9b106 in rb_call (klass=3086484700, recv=3066707820, > mid=3841, > argc=0, argv=0x0, scope=0, self=3083667360) at eval.c:6062 > #169 0x00d97129 in rb_eval (self=3083667360, n=Variable "n" is not > available. > ) at eval.c:3447 > #170 0x00d99e99 in rb_eval (self=3083667360, n=Variable "n" is not > available. > ) at eval.c:3177 > #171 0x00d96f66 in rb_eval (self=3083667360, n=Variable "n" is not > available. > ) at eval.c:2919 > #172 0x00d973a7 in rb_eval (self=3083667360, n=Variable "n" is not > available. > ) at eval.c:3101 > #173 0x00d99674 in rb_eval (self=3083667360, n=Variable "n" is not > available. > ) at eval.c:3263 > #174 0x00d99a62 in rb_eval (self=3083667360, n=Variable "n" is not > available. > ) at eval.c:3311 > #175 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #176 0x00d9b106 in rb_call (klass=3082114880, recv=3083667360, > mid=45561, argc=1, argv=0xbf9677b0, scope=1, self=3083667360) at > eval.c:6062 > #177 0x00d9723f in rb_eval (self=Variable "self" is not available. > ) at eval.c:3462 > #178 0x00d9d501 in rb_yield_0 (val=Variable "val" is not available. > ) at eval.c:4991 > #179 0x00da610a in rb_thread_start_0 (fn=0xd9da28 <rb_thread_yield>, > arg=0xb6bec920, th=0x906cff8) at eval.c:11878 > #180 0x00d8ffc8 in call_cfunc (func=0xda6190 <rb_thread_initialize>, > recv=3065956660, len=Variable "len" is not available. > ) at eval.c:5656 > #181 0x00d9a4dd in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5815 > #182 0x00d9b106 in rb_call (klass=3086499700, recv=3065956660, > mid=2961, > argc=1, argv=0xbf968540, scope=1, self=6) at eval.c:6062 > #183 0x00d9ba0d in rb_obj_call_init (obj=3065956660, argc=1, > argv=0xbf968540) at eval.c:7594 > #184 0x00d9ba53 in rb_thread_s_new (argc=1, argv=0xbf968540, > klass=3086499700) at eval.c:11991 > #185 0x00d900d6 in call_cfunc (func=0xd9ba20 <rb_thread_s_new>, > recv=3086499700, len=Variable "len" is not available. > ) at eval.c:5659 > #186 0x00d9a4dd in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5815 > #187 0x00d9b106 in rb_call (klass=3086499680, recv=3086499700, > mid=3353, > argc=1, argv=0xbf968540, scope=0, self=3083667360) at eval.c:6062 > #188 0x00d97129 in rb_eval (self=3083667360, n=Variable "n" is not > available. > ) at eval.c:3447 > #189 0x00d99e99 in rb_eval (self=3083667360, n=Variable "n" is not > available. > ) at eval.c:3177 > #190 0x00d98216 in rb_eval (self=3083667360, n=Variable "n" is not > available. > ) at eval.c:3638 > #191 0x00d99674 in rb_eval (self=3083667360, n=Variable "n" is not > available. > ) at eval.c:3263 > #192 0x00d973a7 in rb_eval (self=3083667360, n=Variable "n" is not > available. > ) at eval.c:3101 > #193 0x00d9d501 in rb_yield_0 (val=Variable "val" is not available. > ) at eval.c:4991 > #194 0x00da610a in rb_thread_start_0 (fn=0xd9da28 <rb_thread_yield>, > arg=0xb6c53544, th=0x8f46338) at eval.c:11878 > #195 0x00d8ffc8 in call_cfunc (func=0xda6190 <rb_thread_initialize>, > recv=3066377560, len=Variable "len" is not available. > ) at eval.c:5656 > #196 0x00d9a4dd in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5815 > #197 0x00d9b106 in rb_call (klass=3086499700, recv=3066377560, > mid=2961, > argc=0, argv=0x0, scope=1, self=6) at eval.c:6062 > #198 0x00d9ba0d in rb_obj_call_init (obj=3066377560, argc=0, argv=0x0) > at eval.c:7594 > #199 0x00d9ba53 in rb_thread_s_new (argc=0, argv=0x0, > klass=3086499700) > at eval.c:11991 > #200 0x00d900d6 in call_cfunc (func=0xd9ba20 <rb_thread_s_new>, > recv=3086499700, len=Variable "len" is not available. > ) at eval.c:5659 > #201 0x00d9a4dd in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5815 > #202 0x00d9b106 in rb_call (klass=3086499680, recv=3086499700, > mid=3353, > argc=0, argv=0x0, scope=0, self=3083667360) at eval.c:6062 > #203 0x00d97129 in rb_eval (self=3083667360, n=Variable "n" is not > available. > ) at eval.c:3447 > #204 0x00d99e99 in rb_eval (self=3083667360, n=Variable "n" is not > available. > ) at eval.c:3177 > #205 0x00d97f97 in rb_eval (self=3083667360, n=Variable "n" is not > available. > ) at eval.c:3648 > #206 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #207 0x00d9b106 in rb_call (klass=3082114880, recv=3083667360, > mid=5137, > argc=0, argv=0x0, scope=0, self=3083668140) at eval.c:6062 > #208 0x00d97129 in rb_eval (self=3083668140, n=Variable "n" is not > available. > ) at eval.c:3447 > #209 0x00d9d501 in rb_yield_0 (val=Variable "val" is not available. > ) at eval.c:4991 > #210 0x00d9e7a2 in rb_yield (val=3066377740) at eval.c:5073 > #211 0x00dae8e9 in each_i (key=3083666820, value=3083667360) at > hash.c:1119 > #212 0x00dadc74 in hash_foreach_iter (key=3083666820, > value=3083667360, > arg=0xbf96b2a8) at hash.c:170 > ---Type <return> to continue, or q <return> to quit--- > #213 0x00df39cf in st_foreach (table=0x8a81cb0, func=0xdadc44 > <hash_foreach_iter>, arg=3214324392) at st.c:487 > #214 0x00dadd88 in hash_foreach_call (arg=0xbf96b2a8) at hash.c:205 > #215 0x00d95071 in rb_ensure (b_proc=0xdadd60 <hash_foreach_call>, > data1=3214324392, e_proc=0xdadcfc <hash_foreach_ensure>, > data2=3083668080) > at eval.c:5456 > #216 0x00daddf0 in rb_hash_foreach (hash=3083668080, func=0xdae8bc > <each_i>, farg=0) at hash.c:223 > #217 0x00dae918 in rb_hash_each (hash=3083668080) at hash.c:1147 > #218 0x00d900c7 in call_cfunc (func=0xdae8f4 <rb_hash_each>, > recv=3083668080, len=Variable "len" is not available. > ) at eval.c:5662 > #219 0x00d9a4dd in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5815 > #220 0x00d9b106 in rb_call (klass=3086481680, recv=3083668080, > mid=3841, > argc=0, argv=0x0, scope=0, self=3083668140) at eval.c:6062 > #221 0x00d97129 in rb_eval (self=3083668140, n=Variable "n" is not > available. > ) at eval.c:3447 > #222 0x00d99e99 in rb_eval (self=3083668140, n=Variable "n" is not > available. > ) at eval.c:3177 > #223 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #224 0x00d9b106 in rb_call (klass=3082166300, recv=3083668140, > mid=5137, > argc=0, argv=0x0, scope=0, self=3083729140) at eval.c:6062 > #225 0x00d97129 in rb_eval (self=3083729140, n=Variable "n" is not > available. > ) at eval.c:3447 > #226 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #227 0x00d9b106 in rb_call (klass=3084144640, recv=3083729140, > mid=5137, > argc=0, argv=0x0, scope=0, self=3083730060) at eval.c:6062 > #228 0x00d97129 in rb_eval (self=3083730060, n=Variable "n" is not > available. > ) at eval.c:3447 > #229 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #230 0x00d9b106 in rb_call (klass=3082266480, recv=3083730060, > mid=5137, > argc=1, argv=0xbf96ca00, scope=0, self=3086510500) at eval.c:6062 > #231 0x00d97129 in rb_eval (self=3086510500, n=Variable "n" is not > available. > ) at eval.c:3447 > #232 0x00d9904f in rb_eval (self=3086510500, n=Variable "n" is not > available. > ) at eval.c:3008 > #233 0x00da529e in rb_load (fname=3084819400, wrap=0) at eval.c:6857 > #234 0x00da53a1 in rb_f_load (argc=1, argv=0xbf96d650) at eval.c:6925 > #235 0x00d900d6 in call_cfunc (func=0xda535c <rb_f_load>, > recv=3086510500, len=Variable "len" is not available. > ) at eval.c:5659 > #236 0x00d9a4dd in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5815 > #237 0x00d9b106 in rb_call (klass=3086515360, recv=3086510500, > mid=9737, > argc=1, argv=0xbf96d650, scope=3, self=6) at eval.c:6062 > #238 0x00da01d5 in rb_call_super (argc=1, argv=0xbf96d650) at > eval.c:6230 > #239 0x00d9857d in rb_eval (self=3086510500, n=Variable "n" is not > available. > ) at eval.c:3509 > #240 0x00d9d501 in rb_yield_0 (val=Variable "val" is not available. > ) at eval.c:4991 > #241 0x00d9880b in rb_eval (self=3084340100, n=Variable "n" is not > available. > ) at eval.c:3252 > #242 0x00d99a62 in rb_eval (self=3084340100, n=Variable "n" is not > available. > ) at eval.c:3311 > #243 0x00d99a62 in rb_eval (self=3084340100, n=Variable "n" is not > available. > ) at eval.c:3311 > #244 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #245 0x00d9b106 in rb_call (klass=3084339860, recv=3084340100, > mid=41161, argc=1, argv=0xbf96e7d0, scope=0, self=3086510500) at > eval.c:6062 > #246 0x00d97129 in rb_eval (self=3086510500, n=Variable "n" is not > available. > ) at eval.c:3447 > #247 0x00d99e99 in rb_eval (self=3086510500, n=Variable "n" is not > available. > ) at eval.c:3177 > #248 0x00d99674 in rb_eval (self=3086510500, n=Variable "n" is not > available. > ) at eval.c:3263 > #249 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #250 0x00d9b106 in rb_call (klass=3086515500, recv=3086510500, > mid=9737, > argc=1, argv=0xbf96f3e0, scope=1, self=3086510500) at eval.c:6062 > #251 0x00d9723f in rb_eval (self=Variable "self" is not available. > ) at eval.c:3462 > #252 0x00d99a62 in rb_eval (self=3086510500, n=Variable "n" is not > available. > ) at eval.c:3311 > #253 0x00da529e in rb_load (fname=3082098120, wrap=0) at eval.c:6857 > #254 0x00da5729 in rb_require_safe (fname=3082102840, safe=0) at > eval.c:7213 > #255 0x00da59c3 in rb_f_require (obj=3086510500, fname=3082105720) at > eval.c:7106 > #256 0x00d900b8 in call_cfunc (func=0xda59a0 <rb_f_require>, > recv=3086510500, len=Variable "len" is not available. > ) at eval.c:5665 > #257 0x00d9a4dd in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5815 > #258 0x00d9b106 in rb_call (klass=3086515380, recv=3086510500, > mid=30129, argc=1, argv=0xbf970250, scope=1, self=3086510500) at > eval.c:6062 > #259 0x00d9723f in rb_eval (self=Variable "self" is not available. > ) at eval.c:3462 > #260 0x00d99674 in rb_eval (self=3086510500, n=Variable "n" is not > available. > ) at eval.c:3263 > #261 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #262 0x00d9b106 in rb_call (klass=3086515360, recv=3086510500, > mid=9745, > argc=1, argv=0xbf970b90, scope=3, self=6) at eval.c:6062 > #263 0x00da01d5 in rb_call_super (argc=1, argv=0xbf970b90) at > eval.c:6230 > #264 0x00d9857d in rb_eval (self=3086510500, n=Variable "n" is not > available. > ) at eval.c:3509 > #265 0x00d9d501 in rb_yield_0 (val=Variable "val" is not available. > ) at eval.c:4991 > #266 0x00d9880b in rb_eval (self=3084340100, n=Variable "n" is not > available. > ) at eval.c:3252 > #267 0x00d99a62 in rb_eval (self=3084340100, n=Variable "n" is not > available. > ) at eval.c:3311 > #268 0x00d99a62 in rb_eval (self=3084340100, n=Variable "n" is not > available. > ) at eval.c:3311 > #269 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #270 0x00d9b106 in rb_call (klass=3084339860, recv=3084340100, > mid=41161, argc=1, argv=0xbf971d10, scope=0, self=3086510500) at > eval.c:6062 > #271 0x00d97129 in rb_eval (self=3086510500, n=Variable "n" is not > available. > ) at eval.c:3447 > #272 0x00d99e99 in rb_eval (self=3086510500, n=Variable "n" is not > available. > ) at eval.c:3177 > #273 0x00d99674 in rb_eval (self=3086510500, n=Variable "n" is not > available. > ) at eval.c:3263 > #274 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #275 0x00d9b106 in rb_call (klass=3086515500, recv=3086510500, > mid=9745, > argc=1, argv=0xbf972920, scope=1, self=3086510500) at eval.c:6062 > #276 0x00d9723f in rb_eval (self=Variable "self" is not available. > ) at eval.c:3462 > #277 0x00da529e in rb_load (fname=3084709760, wrap=0) at eval.c:6857 > #278 0x00da5729 in rb_require_safe (fname=3086445780, safe=0) at > eval.c:7213 > #279 0x00da59c3 in rb_f_require (obj=3086510500, fname=3084895880) at > eval.c:7106 > #280 0x00d900b8 in call_cfunc (func=0xda59a0 <rb_f_require>, > recv=3086510500, len=Variable "len" is not available. > ) at eval.c:5665 > #281 0x00d9a4dd in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5815 > #282 0x00d9b106 in rb_call (klass=3086515380, recv=3086510500, > mid=30129, argc=1, argv=0xbf9733a0, scope=1, self=3086510500) at > eval.c:6062 > ---Type <return> to continue, or q <return> to quit--- > #283 0x00d9723f in rb_eval (self=Variable "self" is not available. > ) at eval.c:3462 > #284 0x00d99674 in rb_eval (self=3086510500, n=Variable "n" is not > available. > ) at eval.c:3263 > #285 0x00d9adbf in rb_call0 (klass=Variable "klass" is not available. > ) at eval.c:5966 > #286 0x00d9b106 in rb_call (klass=3086515360, recv=3086510500, > mid=9745, > argc=1, argv=0xbf973ca0, scope=1, self=3086510500) at eval.c:6062 > #287 0x00d9723f in rb_eval (self=Variable "self" is not available. > ) at eval.c:3462 > #288 0x00da4345 in ruby_exec_internal () at eval.c:1608 > #289 0x00da4381 in ruby_exec () at eval.c:1628 > #290 0x00da629c in ruby_run () at eval.c:1638 > #291 0x08048669 in main (argc=Could not find the frame base for > "main". > ) at main.c:48 > > Dan Janowski wrote: >> Calvin, >> >> This bug took some time to find, but I got it. XPath was probably the >> best way to expose it, since it had to do with random access to nodes >> (really freeing them, but what's the difference). It would have had >> an impact somewhere else for sure. >> >> It is all committed and an update should yield #187. Give it a try >> (one more time). >> >> Hopeful you will report all clear. >> >> Dan >> >> >> > _______________________________________________ > 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