From: tracy qin <redmine@...>
Date: 2010-12-06T17:26:02+09:00
Subject: [ruby-core:33592] [Ruby 1.9-Bug#4123][Open] thread-safe problem in libxml_ruby.so


--mimepart_4cfc9e19a3a72_525b8fecb4341
Content-Type: text/plain
Content-Transfer-Encoding: Quoted-printable
Content-Disposition: inline

Bug #4123: thread-safe problem in libxml_ruby.so
http://redmine.ruby-lang.org/issues/show/4123

Author: tracy qin
Status: Open, Priority: Normal
Category: lib, Target version: 1.9.2
ruby -v: 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]

Hi,

We set up a rails webservice app using libxml_ruby.so, Hash.from_xml funt=
ion.
This Webserive server works as one process and start new thread to handle=
 each request. But crash always happens at the second call. =


rails reported stacktrace as below: (also attached as "libxml_AbortStackt=
race.txt"
=3D=3D=3D
-- Ruby level backtrace information -------------------------------------=
---
/usr/local/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread=
'
/usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
/usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/handler/webrick.r=
b:50:in `service'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/content_length.rb=
:13:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/lib/rails/rack/log_tailer=
.rb:17:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in `=
call'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/urlmap.rb:40:in `=
each'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/urlmap.rb:46:in `=
block in call'
/usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/lib/rails/rack/static.rb:=
31:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/dispatcher.rb:108:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/reloader.rb:34:in `run'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/dispatcher.rb:114:in `block in call'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/lock.rb:11:in `ca=
ll'
<internal:prelude>:10:in `synchronize'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/lock.rb:11:in `bl=
ock in call'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/failsafe.rb:26:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/session/cookie_store.rb:93:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/params_parser.rb:15:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/methodoverride.rb=
:24:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/rack-1.0.1/lib/rack/head.rb:9:in `cal=
l'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.4/lib/active_record/=
connection_adapters/abstract/connection_pool.rb:361:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.4/lib/active_record/=
query_cache.rb:28:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.4/lib/active_record/=
query_cache.rb:9:in `cache'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.4/lib/active_record/=
connection_adapters/abstract/query_cache.rb:34:in `cache'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.4/lib/active_record/=
query_cache.rb:29:in `block in call'
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-2.3.4/lib/active_record/=
query_cache.rb:29:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/dispatcher.rb:130:in `block in build_middleware_stack'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/dispatcher.rb:121:in `_call'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/dispatcher.rb:87:in `dispatch'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/routing/route_set.rb:436:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/routing/route_set.rb:443:in `recognize'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/core_ext/string/inflections.rb:162:in `constantize'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/inflector.rb:371:in `constantize'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/inflector.rb:371:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/inflector.rb:372:in `block in constantize'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/inflector.rb:372:in `const_get'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:80:in `const_missing_with_dependencies'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:425:in `load_missing_constant'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:259:in `require_or_load'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:379:in `load_file'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:521:in `new_constants_in'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:380:in `block in load_file'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:380:in `load'
/var/webapps/ws_ui/app/controllers/v20/stats_controller.rb:1:in `<top (re=
quired)>'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:96:in `const_missing'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:425:in `load_missing_constant'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:259:in `require_or_load'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:379:in `load_file'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:521:in `new_constants_in'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:380:in `block in load_file'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:380:in `load'
/var/webapps/ws_ui/app/controllers/application_controller.rb:7:in `<top (=
required)>'
/var/webapps/ws_ui/app/controllers/application_controller.rb:9:in `<class=
:ApplicationController>'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/helpers.rb:115:in `helper'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/helpers.rb:115:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/helpers.rb:120:in `block in helper'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/helpers.rb:115:in `helper'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/helpers.rb:115:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-2.3.4/lib/action_controlle=
r/helpers.rb:126:in `block in helper'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:136:in `require_dependency'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:224:in `depend_on'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:259:in `require_or_load'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:373:in `load_file'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:312:in `loadable_constants_for_path'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:312:in `collect'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:313:in `block in loadable_constants_for_path'
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/dependencies.rb:313:in `expand_path'

-- C level backtrace information ----------------------------------------=
---
ruby(rb_vm_bugreport+0x68) [0x52bc38]
ruby [0x566a01]
ruby(rb_bug+0xee) [0x566b09]
ruby [0x4b3850]
/lib64/libpthread.so.0 [0x2af6da3fab10]
/lib64/libc.so.6 [0x2af6daf40485]
/lib64/libc.so.6 [0x2af6daf42a6c]
/lib64/libc.so.6(__libc_malloc+0x6e) [0x2af6daf44cde]
ruby [0x41e4ae]
ruby(ruby_xmalloc2+0x64) [0x41e68d]
ruby [0x4c005d]
ruby(rb_str_new+0x24) [0x4c02b8]
ruby(rb_usascii_str_new+0x1d) [0x4c02d7]
ruby(rb_file_expand_path+0x40) [0x5702c7]
ruby(rb_file_s_expand_path+0x26) [0x570304]
ruby [0x51f980]
ruby [0x51f853]
ruby [0x51ec2b]
ruby [0x519abd]
ruby [0x5289a5]
ruby [0x52763f]
ruby [0x5276c6]
ruby [0x52417f]
ruby(rb_yield+0x39) [0x524153]
ruby [0x540018]
ruby [0x51f998]
ruby [0x51f853]
ruby [0x51ec2b]
ruby [0x519abd]
ruby [0x5289a5]
ruby [0x52763f]
ruby [0x5276c6]
ruby [0x52417f]
ruby(rb_yield+0x39) [0x524153]
ruby(rb_ary_each+0x8a) [0x53d736]
ruby [0x51f998]
ruby [0x51f853]
ruby [0x51ec2b]
ruby [0x519abd]
ruby [0x5289a5]
ruby [0x52763f]
ruby [0x5276c6]
ruby [0x52417f]
ruby(rb_yield+0x39) [0x524153]
ruby(rb_ary_each+0x8a) [0x53d736]
ruby [0x51f998]
ruby [0x51f853]
ruby [0x51ec2b]
ruby [0x519abd]
ruby [0x5289a5]
ruby(rb_iseq_eval+0x2d) [0x529391]
ruby [0x56ad05]
ruby [0x56af4a]
ruby [0x51f980]
ruby [0x51f853]
ruby [0x51ec2b]
ruby [0x519abd]
ruby [0x5289a5]
ruby [0x522aaf]
ruby [0x523d7f]
ruby [0x523cd5]
ruby(rb_funcall+0x201) [0x523f8a]
ruby [0x4fb60e]
ruby [0x4fbe1f]
ruby(rb_const_get+0x27) [0x4fbe8d]
ruby [0x51e650]
ruby [0x517741]
ruby [0x5289a5]
ruby(rb_iseq_eval+0x2d) [0x529391]
ruby [0x56ad05]
ruby [0x56af4a]
ruby [0x51f980]
ruby [0x51f853]
ruby [0x51ec2b]
ruby [0x519abd]
ruby [0x5289a5]
ruby [0x522aaf]
ruby [0x523d7f]
ruby [0x523cd5]
ruby(rb_funcall+0x201) [0x523f8a]
ruby [0x4fb60e]
ruby [0x4fbe1f]
ruby(rb_const_get_at+0x27) [0x4fbeb6]
ruby [0x44cb0a]
ruby [0x51f980]
ruby [0x51f853]
ruby [0x51ec2b]
ruby [0x519abd]
ruby [0x5289a5]
ruby [0x52763f]
ruby [0x5276c6]
ruby [0x52417f]
ruby(rb_yield+0x39) [0x524153]
ruby(rb_ary_each+0x8a) [0x53d736]
ruby [0x51f998]
ruby [0x51f853]
ruby [0x51ec2b]
ruby [0x519abd]
ruby [0x5289a5]
ruby [0x52763f]
ruby(rb_vm_invoke_proc+0xfd) [0x5277c5]
ruby [0x41afa1]
ruby [0x51f980]
ruby [0x51f853]
ruby [0x51ec2b]
ruby [0x519abd]
ruby [0x5289a5]
ruby [0x52763f]
ruby [0x5276c6]
ruby [0x52417f]
ruby(rb_yield+0x39) [0x524153]
ruby(rb_ary_each+0x8a) [0x53d736]
ruby [0x51f998]
ruby [0x51f853]
ruby [0x51ec2b]
ruby [0x519abd]
ruby [0x5289a5]
ruby [0x52763f]
ruby(rb_vm_invoke_proc+0xfd) [0x5277c5]
ruby [0x52cfef]
ruby [0x52c16b]
/lib64/libpthread.so.0 [0x2af6da3f273d]
/lib64/libc.so.6(clone+0x6d) [0x2af6dafa3d1d]

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libra=
ries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Aborted (core dumped)
=3D=3D=3D=3D=3D

Then we recompile ruby in debug mode and accquire below calldump. (also a=
ttached as libxml_coredump.txt)

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
#0  0x00002b7acf490265 in raise () from /lib64/libc.so.6
#1  0x00002b7acf491d10 in abort () from /lib64/libc.so.6
#2  0x0000000000566b0e in rb_bug (fmt=3D0x5a70ff "Segmentation fault") at=
 error.c:253
#3  0x00000000004b3850 in sigsegv (sig=3D11, info=3D0x1243afd0, ctx=3D0x1=
243aea0) at signal.c:613
#4  <signal handler called>
#5  0x00002b7acf4d1d26 in _int_free () from /lib64/libc.so.6
#6  0x00002b7acf4d276b in free () from /lib64/libc.so.6
#7  0x000000000041e602 in vm_xfree (objspace=3D0xf6f7b70, ptr=3D0x11f91c6=
0) at gc.c:732
#8  0x000000000041e78b in ruby_xfree (x=3D0x11f91c60) at gc.c:780
#9  0x00000000004dfe5c in time_free (tobj=3D0x11f91c60) at time.c:1806
#10 0x000000000042232f in run_final (objspace=3D0xf6f7b70, obj=3D28387312=
0) at gc.c:2605
#11 0x00000000004204a5 in finalize_list (objspace=3D0xf6f7b70, p=3D0x10eb=
8f60) at gc.c:1808
#12 0x00000000004223a4 in finalize_deferred (objspace=3D0xf6f7b70) at gc.=
c:2621
#13 0x00000000004223bb in gc_finalize_deferred (objspace=3D0xf6f7b70) at =
gc.c:2628
#14 0x00000000004223dd in rb_gc_finalize_deferred () at gc.c:2635
#15 0x000000000052e73e in rb_threadptr_execute_interrupts_rec (th=3D0x11b=
3c230, sched_depth=3D0) at thread.c:1295
#16 0x000000000052e837 in rb_threadptr_execute_interrupts (th=3D0x11b3c23=
0) at thread.c:1323
#17 0x000000000051f44f in vm_call_method (th=3D0x11b3c230, cfp=3D0x2aaab0=
88c4e8, num=3D1, blockptr=3D0x0, flag=3D0, id=3D7072, me=3D0xf7d2b60, rec=
v=3D259309440)
    at vm_insnhelper.c:669
#18 0x0000000000519abd in vm_exec_core (th=3D0x11b3c230, initial=3D0) at =
insns.def:1006
#19 0x00000000005289a5 in vm_exec (th=3D0x11b3c230) at vm.c:1145
#20 0x000000000052763f in invoke_block_from_c (th=3D0x11b3c230, block=3D0=
x2aaab088c618, self=3D265666400, argc=3D1, argv=3D0x40ccabc8, blockptr=3D=
0x0, cref=3D0x0)
    at vm.c:557
#21 0x00000000005276c6 in vm_yield (th=3D0x11b3c230, argc=3D1, argv=3D0x4=
0ccabc8) at vm.c:587
#22 0x000000000052417f in rb_yield_0 (argc=3D1, argv=3D0x40ccabc8) at vm_=
eval.c:731
#23 0x0000000000524153 in rb_yield (val=3D264390920) at vm_eval.c:741
#24 0x0000000000540018 in rb_ary_collect (ary=3D272006520) at array.c:216=
6
#25 0x000000000051f998 in call_cfunc (func=3D0x53ff4d <rb_ary_collect>, r=
ecv=3D272006520, len=3D0, argc=3D0, argv=3D0x2aaab078ec18) at vm_insnhelp=
er.c:317
#26 0x000000000051f853 in vm_call_cfunc (th=3D0x11b3c230, reg_cfp=3D0x2aa=
ab088c5f0, num=3D0, recv=3D272006520, blockptr=3D0x2aaab088c618, me=3D0xf=
7aeb30)
    at vm_insnhelper.c:401
#27 0x000000000051ec2b in vm_call_method (th=3D0x11b3c230, cfp=3D0x2aaab0=
88c5f0, num=3D0, blockptr=3D0x2aaab088c618, flag=3D0, id=3D1536, me=3D0xf=
7aeb30, recv=3D272006520)
    at vm_insnhelper.c:523
#28 0x0000000000519abd in vm_exec_core (th=3D0x11b3c230, initial=3D0) at =
insns.def:1006
#29 0x00000000005289a5 in vm_exec (th=3D0x11b3c230) at vm.c:1145
#30 0x000000000052763f in invoke_block_from_c (th=3D0x11b3c230, block=3D0=
x2aaab088c8d8, self=3D271841760, argc=3D1, argv=3D0x40ccbd48, blockptr=3D=
0x0, cref=3D0x0)
    at vm.c:557
#31 0x00000000005276c6 in vm_yield (th=3D0x11b3c230, argc=3D1, argv=3D0x4=
0ccbd48) at vm.c:587
#32 0x000000000052417f in rb_yield_0 (argc=3D1, argv=3D0x40ccbd48) at vm_=
eval.c:731
#33 0x0000000000524153 in rb_yield (val=3D263084440) at vm_eval.c:741
#34 0x000000000053d736 in rb_ary_each (ary=3D263072400) at array.c:1427
#35 0x000000000051f998 in call_cfunc (func=3D0x53d6ac <rb_ary_each>, recv=
=3D263072400, len=3D0, argc=3D0, argv=3D0x2aaab078eab0) at vm_insnhelper.=
c:317
#36 0x000000000051f853 in vm_call_cfunc (th=3D0x11b3c230, reg_cfp=3D0x2aa=
ab088c8b0, num=3D0, recv=3D263072400, blockptr=3D0x2aaab088c8d8, me=3D0xf=
7addc0)
    at vm_insnhelper.c:401
#37 0x000000000051ec2b in vm_call_method (th=3D0x11b3c230, cfp=3D0x2aaab0=
88c8b0, num=3D0, blockptr=3D0x2aaab088c8d8, flag=3D0, id=3D424, me=3D0xf7=
addc0, recv=3D263072400)
    at vm_insnhelper.c:523
#38 0x0000000000519abd in vm_exec_core (th=3D0x11b3c230, initial=3D0) at =
insns.def:1006
#39 0x00000000005289a5 in vm_exec (th=3D0x11b3c230) at vm.c:1145
#40 0x000000000052763f in invoke_block_from_c (th=3D0x11b3c230, block=3D0=
x2aaab088ca38, self=3D271841760, argc=3D1, argv=3D0x40ccceb8, blockptr=3D=
0x0, cref=3D0x0)
    at vm.c:557
#41 0x00000000005276c6 in vm_yield (th=3D0x11b3c230, argc=3D1, argv=3D0x4=
0ccceb8) at vm.c:587
#42 0x000000000052417f in rb_yield_0 (argc=3D1, argv=3D0x40ccceb8) at vm_=
eval.c:731
#43 0x0000000000524153 in rb_yield (val=3D3956750) at vm_eval.c:741
#44 0x000000000053d736 in rb_ary_each (ary=3D263093600) at array.c:1427
#45 0x000000000051f998 in call_cfunc (func=3D0x53d6ac <rb_ary_each>, recv=
=3D263093600, len=3D0, argc=3D0, argv=3D0x2aaab078ea20) at vm_insnhelper.=
c:317
#46 0x000000000051f853 in vm_call_cfunc (th=3D0x11b3c230, reg_cfp=3D0x2aa=
ab088ca10, num=3D0, recv=3D263093600, blockptr=3D0x2aaab088ca38, me=3D0xf=
7addc0)
    at vm_insnhelper.c:401
#47 0x000000000051ec2b in vm_call_method (th=3D0x11b3c230, cfp=3D0x2aaab0=
88ca10, num=3D0, blockptr=3D0x2aaab088ca38, flag=3D0, id=3D424, me=3D0xf7=
addc0, recv=3D263093600)
    at vm_insnhelper.c:523
#48 0x0000000000519abd in vm_exec_core (th=3D0x11b3c230, initial=3D0) at =
insns.def:1006
#49 0x00000000005289a5 in vm_exec (th=3D0x11b3c230) at vm.c:1145
#50 0x0000000000529391 in rb_iseq_eval (iseqval=3D272926200) at vm.c:1372=

#51 0x000000000056ad05 in rb_load_internal (fname=3D280717600, wrap=3D0) =
at load.c:302
#52 0x000000000056af4a in rb_f_load (argc=3D1, argv=3D0x2aaab078e9a8) at =
load.c:375
#53 0x000000000051f980 in call_cfunc (func=3D0x56ae8b <rb_f_load>, recv=3D=
265666400, len=3D-1, argc=3D1, argv=3D0x2aaab078e9a8) at vm_insnhelper.c:=
314
#54 0x000000000051f853 in vm_call_cfunc (th=3D0x11b3c230, reg_cfp=3D0x2aa=
ab088cbc8, num=3D1, recv=3D265666400, blockptr=3D0x0, me=3D0xfd96140) at =
vm_insnhelper.c:401
#55 0x000000000051ec2b in vm_call_method (th=3D0x11b3c230, cfp=3D0x2aaab0=
88cbc8, num=3D1, blockptr=3D0x0, flag=3D8, id=3D34488, me=3D0xfd96140, re=
cv=3D265666400)
    at vm_insnhelper.c:523
#56 0x0000000000519abd in vm_exec_core (th=3D0x11b3c230, initial=3D0) at =
insns.def:1006
#57 0x00000000005289a5 in vm_exec (th=3D0x11b3c230) at vm.c:1145
#58 0x0000000000522aaf in vm_call0 (th=3D0x11b3c230, recv=3D259360280, id=
=3D1144, argc=3D1, argv=3D0x40ccf2a0, me=3D0xfc62580) at vm_eval.c:66
#59 0x0000000000523d7f in rb_call0 (recv=3D259360280, mid=3D1144, argc=3D=
1, argv=3D0x40ccf2a0, scope=3DCALL_FCALL, self=3D6) at vm_eval.c:235
#60 0x0000000000523cd5 in rb_call (recv=3D259360280, mid=3D1144, argc=3D1=
, argv=3D0x40ccf2a0, scope=3DCALL_FCALL) at vm_eval.c:438
#61 0x0000000000523f8a in rb_funcall (recv=3D259360280, mid=3D1144, n=3D1=
) at vm_eval.c:637
#62 0x00000000004fb60e in const_missing (klass=3D259360280, id=3D88005) a=
t variable.c:1360
#63 0x00000000004fbe1f in rb_const_get_0 (klass=3D259360280, id=3D88005, =
exclude=3D0, recurse=3D1) at variable.c:1600
#64 0x00000000004fbe8d in rb_const_get (klass=3D259360280, id=3D88005) at=
 variable.c:1614
#65 0x000000000051e650 in vm_get_ev_const (th=3D0x11b3c230, iseq=3D0x1260=
1510, orig_klass=3D4, id=3D88005, is_defined=3D0) at vm_insnhelper.c:1196=

#66 0x0000000000517741 in vm_exec_core (th=3D0x11b3c230, initial=3D0) at =
insns.def:223
#67 0x00000000005289a5 in vm_exec (th=3D0x11b3c230) at vm.c:1145
#68 0x0000000000529391 in rb_iseq_eval (iseqval=3D281036160) at vm.c:1372=

#69 0x000000000056ad05 in rb_load_internal (fname=3D282078760, wrap=3D0) =
at load.c:302
#70 0x000000000056af4a in rb_f_load (argc=3D1, argv=3D0x2aaab078e7e8) at =
load.c:375
#71 0x000000000051f980 in call_cfunc (func=3D0x56ae8b <rb_f_load>, recv=3D=
265666400, len=3D-1, argc=3D1, argv=3D0x2aaab078e7e8) at vm_insnhelper.c:=
314
#72 0x000000000051f853 in vm_call_cfunc (th=3D0x11b3c230, reg_cfp=3D0x2aa=
ab088cf38, num=3D1, recv=3D265666400, blockptr=3D0x0, me=3D0xfd96140) at =
vm_insnhelper.c:401
#73 0x000000000051ec2b in vm_call_method (th=3D0x11b3c230, cfp=3D0x2aaab0=
88cf38, num=3D1, blockptr=3D0x0, flag=3D8, id=3D34488, me=3D0xfd96140, re=
cv=3D265666400)
    at vm_insnhelper.c:523
#74 0x0000000000519abd in vm_exec_core (th=3D0x11b3c230, initial=3D0) at =
insns.def:1006
#75 0x00000000005289a5 in vm_exec (th=3D0x11b3c230) at vm.c:1145
#76 0x0000000000522aaf in vm_call0 (th=3D0x11b3c230, recv=3D282348640, id=
=3D1144, argc=3D1, argv=3D0x40cd1630, me=3D0x100a4d00) at vm_eval.c:66
#77 0x0000000000523d7f in rb_call0 (recv=3D282348640, mid=3D1144, argc=3D=
1, argv=3D0x40cd1630, scope=3DCALL_FCALL, self=3D6) at vm_eval.c:235
#78 0x0000000000523cd5 in rb_call (recv=3D282348640, mid=3D1144, argc=3D1=
, argv=3D0x40cd1630, scope=3DCALL_FCALL) at vm_eval.c:438
#79 0x0000000000523f8a in rb_funcall (recv=3D282348640, mid=3D1144, n=3D1=
) at vm_eval.c:637
#80 0x00000000004fb60e in const_missing (klass=3D282348640, id=3D124773) =
at variable.c:1360
#81 0x00000000004fbe1f in rb_const_get_0 (klass=3D282348640, id=3D124773,=
 exclude=3D1, recurse=3D0) at variable.c:1600
#82 0x00000000004fbeb6 in rb_const_get_at (klass=3D282348640, id=3D124773=
) at variable.c:1620
#83 0x000000000044cb0a in rb_mod_const_get (argc=3D2, argv=3D0x2aaab078e6=
60, mod=3D282348640) at object.c:1695
#84 0x000000000051f980 in call_cfunc (func=3D0x44ca55 <rb_mod_const_get>,=
 recv=3D282348640, len=3D-1, argc=3D2, argv=3D0x2aaab078e660) at vm_insnh=
elper.c:314
#85 0x000000000051f853 in vm_call_cfunc (th=3D0x11b3c230, reg_cfp=3D0x2aa=
ab088d1f8, num=3D2, recv=3D282348640, blockptr=3D0x0, me=3D0xf767b70) at =
vm_insnhelper.c:401
#86 0x000000000051ec2b in vm_call_method (th=3D0x11b3c230, cfp=3D0x2aaab0=
88d1f8, num=3D2, blockptr=3D0x0, flag=3D0, id=3D1112, me=3D0xf767b70, rec=
v=3D282348640)
    at vm_insnhelper.c:523
#87 0x0000000000519abd in vm_exec_core (th=3D0x11b3c230, initial=3D0) at =
insns.def:1006
#88 0x00000000005289a5 in vm_exec (th=3D0x11b3c230) at vm.c:1145
#89 0x000000000052763f in invoke_block_from_c (th=3D0x11b3c230, block=3D0=
x2aaab088d328, self=3D261961800, argc=3D1, argv=3D0x40cd2998, blockptr=3D=
0x0, cref=3D0x0)
    at vm.c:557
#90 0x00000000005276c6 in vm_yield (th=3D0x11b3c230, argc=3D1, argv=3D0x4=
0cd2998) at vm.c:587
#91 0x000000000052417f in rb_yield_0 (argc=3D1, argv=3D0x40cd2998) at vm_=
eval.c:731
#92 0x0000000000524153 in rb_yield (val=3D282361960) at vm_eval.c:741
#93 0x000000000053d736 in rb_ary_each (ary=3D282362240) at array.c:1427
#94 0x000000000051f998 in call_cfunc (func=3D0x53d6ac <rb_ary_each>, recv=
=3D282362240, len=3D0, argc=3D0, argv=3D0x2aaab078e620) at vm_insnhelper.=
c:317
#95 0x000000000051f853 in vm_call_cfunc (th=3D0x11b3c230, reg_cfp=3D0x2aa=
ab088d300, num=3D0, recv=3D282362240, blockptr=3D0x2aaab088d328, me=3D0xf=
7addc0)
    at vm_insnhelper.c:401
#96 0x000000000051ec2b in vm_call_method (th=3D0x11b3c230, cfp=3D0x2aaab0=
88d300, num=3D0, blockptr=3D0x2aaab088d328, flag=3D0, id=3D424, me=3D0xf7=
addc0, recv=3D282362240)
    at vm_insnhelper.c:523
#97 0x0000000000519abd in vm_exec_core (th=3D0x11b3c230, initial=3D0) at =
insns.def:1006
#98 0x00000000005289a5 in vm_exec (th=3D0x11b3c230) at vm.c:1145
#99 0x000000000052763f in invoke_block_from_c (th=3D0x11b3c230, block=3D0=
x127510b0, self=3D291970880, argc=3D1, argv=3D0x2aaab078e4f0, blockptr=3D=
0x0, cref=3D0x0)
    at vm.c:557
#100 0x00000000005277c5 in rb_vm_invoke_proc (th=3D0x11b3c230, proc=3D0x1=
27510b0, self=3D291970880, argc=3D1, argv=3D0x2aaab078e4f0, blockptr=3D0x=
0) at vm.c:603
---Type <return> to continue, or q <return> to quit---
#101 0x000000000041afa1 in proc_call (argc=3D1, argv=3D0x2aaab078e4f0, pr=
ocval=3D282451640) at proc.c:556
#102 0x000000000051f980 in call_cfunc (func=3D0x41aefc <proc_call>, recv=3D=
282451640, len=3D-1, argc=3D1, argv=3D0x2aaab078e4f0) at vm_insnhelper.c:=
314
#103 0x000000000051f853 in vm_call_cfunc (th=3D0x11b3c230, reg_cfp=3D0x2a=
aab088d618, num=3D1, recv=3D282451640, blockptr=3D0x0, me=3D0xf7f0f00) at=
 vm_insnhelper.c:401
#104 0x000000000051ec2b in vm_call_method (th=3D0x11b3c230, cfp=3D0x2aaab=
088d618, num=3D1, blockptr=3D0x0, flag=3D0, id=3D5912, me=3D0xf7f0f00, re=
cv=3D282451640)
    at vm_insnhelper.c:523
#105 0x0000000000519abd in vm_exec_core (th=3D0x11b3c230, initial=3D0) at=
 insns.def:1006
#106 0x00000000005289a5 in vm_exec (th=3D0x11b3c230) at vm.c:1145
#107 0x000000000052763f in invoke_block_from_c (th=3D0x11b3c230, block=3D=
0x2aaab088dd20, self=3D295023880, argc=3D1, argv=3D0x40cd4d68, blockptr=3D=
0x0, cref=3D0x0)
    at vm.c:557
#108 0x00000000005276c6 in vm_yield (th=3D0x11b3c230, argc=3D1, argv=3D0x=
40cd4d68) at vm.c:587
#109 0x000000000052417f in rb_yield_0 (argc=3D1, argv=3D0x40cd4d68) at vm=
_eval.c:731
#110 0x0000000000524153 in rb_yield (val=3D295023400) at vm_eval.c:741
#111 0x000000000053d736 in rb_ary_each (ary=3D295023360) at array.c:1427
#112 0x000000000051f998 in call_cfunc (func=3D0x53d6ac <rb_ary_each>, rec=
v=3D295023360, len=3D0, argc=3D0, argv=3D0x2aaab078e218) at vm_insnhelper=
.c:317
#113 0x000000000051f853 in vm_call_cfunc (th=3D0x11b3c230, reg_cfp=3D0x2a=
aab088dcf8, num=3D0, recv=3D295023360, blockptr=3D0x2aaab088dd20, me=3D0x=
f7addc0)
    at vm_insnhelper.c:401
#114 0x000000000051ec2b in vm_call_method (th=3D0x11b3c230, cfp=3D0x2aaab=
088dcf8, num=3D0, blockptr=3D0x2aaab088dd20, flag=3D0, id=3D424, me=3D0xf=
7addc0, recv=3D295023360)
    at vm_insnhelper.c:523
#115 0x0000000000519abd in vm_exec_core (th=3D0x11b3c230, initial=3D0) at=
 insns.def:1006
#116 0x00000000005289a5 in vm_exec (th=3D0x11b3c230) at vm.c:1145
#117 0x000000000052763f in invoke_block_from_c (th=3D0x11b3c230, block=3D=
0x119b71e0, self=3D294980880, argc=3D0, argv=3D0x10db1988, blockptr=3D0x0=
, cref=3D0x0)
    at vm.c:557
#118 0x00000000005277c5 in rb_vm_invoke_proc (th=3D0x11b3c230, proc=3D0x1=
19b71e0, self=3D294980880, argc=3D0, argv=3D0x10db1988, blockptr=3D0x0) a=
t vm.c:603
#119 0x000000000052cfef in thread_start_func_2 (th=3D0x11b3c230, stack_st=
art=3D0x40cd6120) at thread.c:441
#120 0x000000000052c16b in thread_start_func_1 (th_ptr=3D0x11b3c230) at t=
hread_pthread.c:369
#121 0x00002b7ace98273d in start_thread () from /lib64/libpthread.so.0
#122 0x00002b7acf533d1d in clone () from /lib64/libc.so.6
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Since we doubt it seems to be a thread safe problem with libxml_ruby.so ,=
 a simple test script is used (attached as testthreadxml.rb), and it seem=
s it runs very unstable. sometimes, it throw below exception.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/active_suppor=
t/xml_mini.rb:15:in `rescue in parse': parse delegated to backend.parse, =
but backend is nil: ActiveSupport::XmlMini (RuntimeError)
        from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/=
active_support/xml_mini.rb:12:in `parse'
        from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-2.3.4/lib/=
active_support/core_ext/hash/conversions.rb:164:in `from_xml'
        from testthreadxml.rb:12:in `block in <main>'

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
problem never happen in ruby1.8.6 though.

would you help on such issue? thank you!


----------------------------------------
http://redmine.ruby-lang.org

--mimepart_4cfc9e19a3a72_525b8fecb4341
Content-Type: application/x-zip-compressed; name=core-dump.zip
Content-Transfer-Encoding: Base64
Content-Disposition: attachment; filename=core-dump.zip

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

--mimepart_4cfc9e19a3a72_525b8fecb4341--