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 UEsDBBQAAAAIAAaBhj20toeh8QkAAKYzAAAYAAAAbGlieG1sX2Fib3J0Y29y ZWR1bXAudHh0tVtNb+M4Er0PMP9BmLmkgXSGXyKpQbuBxQJ7mtvuXaAkytG0 LaclOZvsr98iJdlSSf6MkoOT2NKrxyLrVbFE/06CgLwR+GGJMmkuIsJkGBRl UJmitsHDlyCvdtvgj02RSOFe06d69yR//eV3iu+kGSXuTpPsqubcnay/s/0J pUyI9TaTONmvg4d826zIW2gUyfPgt3/b9daWjWmKXRnkZr9pfvsSmCawVbWr ntI/WcgBlI9BRcJ16OnUxbq269fgAf5YUfoI7+U7gKdMcJNn5DFIm7f+f2uI x4ZrS7MBcEkduAiCb+1bwbMps42tgtRsNjb7Dh+GyBEZzZh0luOibOK8smfd KPHdTMnE3X3pRoUGTK0kzN34uo3f2pt3yd/1i0ktjC6XuUoUDPalqdxgaR7R VLaDXacwUMUZgOoJqNKeTbVP3nvYt3kATQAgQgBZbsPUATTF1nbOaIAXhnAf AwjVxK8tMkZhjLO8pVHGeeHmYXZwDphprhWnbECNSRI6VIpQiTB+rXvE4n82 3hR1c8JtjjCxic6HYwa62gGzCV0jRsCZzWG52mwOfMiTUQfHJ3CJn4R1Gt+O 6AmKCWKWdRE3DzqE4N554ThomVW8D9rmubImg5UV2zeb7hvrVj4A7V+aOq5s ClP+7Cc84Snj4M06fbYZWHtx77fz7yGcS1nkzUlsTnN1hTlkCmFz5qKZqjE2 zYXIu8hxYR1vbfO8yyas09ytAmaMSYjWqbD6MSj32xVoSrLZpT/a0IIL841Z r+B3ka0UUewx2PrJURlLJLwNHnldsTDiJBKCfPn1lwB+gCeYL8q6fLabF+uE TcrIsdWIbWSSrGPrxh+nu8pOuBZl0RRm03nXwdZPMLt/UtIGWITcq6M2FDrQ OTe+bp0LqXDTwwi6X0nuXViUr7sfNvb+iJ10xdPZ9x8OPSkpeLK2m3wFyUdK KQhcZap16lwLv1/hYkHS1CSpxr5OK5u7v4ZuBJ5hqBxNOqGZym6Y74XdTOf4 hNWjA0LtgRkCFlTl3fL0wDEJHs5jxfbVZxjQKgfIJ4AhHwIGD3A5+EfwiESM YBDhQcZhHoIfYfW0IKZ6h5UCOSttHLP3FVMM1kLYQZmqMu8u2qn0KTrEIRJF HsnHR5rvS5hW9+ryNM8hbQXfxka+9+u8N/MYbGy56l1MDm5pV4HSNqUH14zC gFPvcYkZ6dZBfdB2pNB8VnYdo7gNc9LGLZlSHKyt8ersItjYhJ+JWEH8NGB9 sSlLbteXIc+TvAZSAwtGjoni8Z0mHnphZJ8hNeyDUsMXlRqdHaRGUQ1RK+eD PsnEbVLDl5AaZxVLDb9TagZYY6nh10oNJ1q4BDUnNRxJDc8UlwOpsSZ97nQG cBQDKRrpDBXMD+4mncmkSQ864ywcRKa3cVFk4PWMyPDFREYnWGSOFOeC2a/L PnazLL0oMnwZkRnyPMlrIDKCiTFPPLxLGsM/Q2P4BzVGLKoxhl+nMSlsJ27S GLGExjirWGPEnRozwBprjLhOY3gUShXOK4y4SWEiLucVRiynMN7GZYVh5xRG LKYwhs4oTEdxLpL9qrxFYcQyCjPkeZLXlQrTzvIFhRGfoTDigwoTYoWJeES7 1VzU9qdf+8GD+9MnX8Ui2LuTIRBXrkMTIg2QJiNhB7TZmazdC/sOSV4a8CPT RDkJgjH+tzIv3QDdpW5REo/JMGYuTIeZe9RJ9B+We2T0CFD50fJJ0GlyKuik sTrxQdfaOobcYS/oQu4rncjZhMQ05oRjI5aKOb//7Lb8mONYx9sFnEWSink5 aGMsxOp0X4wNec20IrQPLC6E1mNmeBSXQivE6rVEaIXqg6GF4p2BW4btHDIz s10DRhKIjnbzRIWYTZc5M4fpTCULNc5Wfr8cYnmAbNUn0I4DNrq9bLVOdy92 9c9//PVX/C/32lUVEjFgvkEnscLwNAsHFBZhgCwL7rqLEpclPNcH+YDIumC8 XFHsUu5SpURd1TyR7WOCdFfWTbwt6roo18HDj42pazSdWgOPFtVUhUk2vrkM FzhcjnEtPcyVh17bxhU8J4EfA/uWbvaZ7XLvvqptP4iBOdBcZ05MzOkMm7tl FNKLmpwoh2yfd4AbHX/72qJPoxFSjHuDSUJDl5t3VbGOW/NiOMaidv3gorTZ al7CKI38EwwsCgoKuLtFgXmhkR/UBIk14UK61ZRwSeU03UoU2FekWwYZyZf8 p9KtIhjz+nSr7Ey6VSgAPzvd9iTm061imM296TbnC6dbheuS+9LtkNdnpluF C5cl0q3CD3JuDC2Fn8xcmW4140JLcT7dZlTyfjqBrxHZoQQe5VuF9eFUvj1a PZftOrM35VuFJeZEvv0Qg9l8qybFxsl8O2f8VL7V6KHrhXw7nk8mlOInEq6m GPh8wp1BPmZcesy45ETG1ZPCwSZyYs80Nw0FNmMOGtUOIk1I7/rtLhsmdD/H bCqe0qUGuPZo1tvaJX/btPGW/ANQPdm0nNZ0oGFgJ/ENk/g+jb2RtM+zOyPt etJMuVPaM7izlVA25Tgn7UoeHmzPS7vGVchd0j7idfKhLqWUjYnhQVxSdo17 K0sou8aKdKOya6wrH+mCZpwdH+pCoUj1/EPdjEXRbV3QaNqsvbkL6q0eHdB2 QSO8j7muCzrEGndBo2lbdfZJC6wa56L5PmiEapYzfVCHw5iY7YNGUz25qw/a 27jYB5Vn+6DRYkrC3boa9UGPFGf6je26vKUPGi2jLEOeJ3ld0wc9zPIFjYk+ Q2OiD2pMtITGUKZg5+qeXLX6EtFIgQunkX5YjCKf5JWzGgOjxTxV2ld33t2e 7Uu1m7J0by5D8ug9SWBGv379+p/3FwtxaZt9VX4Pmp2rzZqi3Fu3jQ9+jj76 uS8auMWPBlVg1OTGb4cd165aPcvKXddJlQhpX7O4d73L2jN7k33fmYqFGpuD whzsD/SlNXB5FwrEzpQqsKFfSmH8QYvRNvRIcrZWyUlO5rm1ikIJFuP7JGVI 7GSxEkaDYsUzw6O4JCSUYLFe5AgawRvJG6WEErwJ/FC9krFjqIaE8blQddle ZPK2eoUSrJn3FCzOLC5YKMFqemXFMgAbVyyUYt07UbJ4F4nJ5rwtWSg6aXuu ZvFAXM7WLJROJeWuoqU3crFoYWfPoFG6mKak/T6DTDnOVQd+dd5StVC6jMYM iZ4kdk3ZcpjoS2qDTxovozaTA8W3qg0+NXxf5UKjRFF7VBoBOfKoNMcVSUmW 0EjfqDT4rPAdVcvHCKKKBRhhhUpz673WHsqO68ZUje9axWzCCT4El/pLOuGS /bn+w5lu0SrO5EByStuvUUztUGcnfum+BzGY7u7SlwM2bw9gH04R+69o2Egz xf2CbEHby2e+qtED1bsn4nHYECcPOc+ox0k3u/Lcdz3+D1BLAwQUAAAACAAt gYY9KeaXYO8FAADGJwAAFQAAAGxpYnhtbF9zdGFja3RyYWNlLnR4dO1aS2/j NhC+B8h/0K0JCtt6WZKDxQLbRXtsgaKXYhGwFDmyhciilqTspL++Q1G2JWWD xI6VLRbJwbFG8/w4MxxamkycP+v0wSlgA4WTUnanJWXg5GUm5JrqXJTO5IV/ lxezWslZIRgtZkWeziRqnnnTxdSbbSGVObubKZAbkFOZ3nhJcJOXzj8p8t+h PUdpKjXRKwmU//QSXSutq4O+2G3Uybo8QdjzvEbaUHIGT2hYwlq1apqviNTd xJu6eN3wUKOXlrwAubNjlM/dM+lmotRQalJAudSrxm+LIWoqXqw3L9TEnwbT sFWM11Z9IZZE42ULSXy86scu17JY08roC91R9AFlq/Poi/rpeB5MMal1zoz+ wDs2fspM+VXG64NuSyQmFaQoTKbxXFVUs1W7bG4ykh0JhaDcWgnCZ4rtPLF4 4SvW5PFiGzVWbxeiDzlWlSxpcVNhiDWHjwiirdiHkq2kKPN/X1O1A6unBPNC 9DKTdzQDY82PRkoDBUohCZuRuMuBKC1kY3BxdCt6ocGKSrpWBP+pNi3m5+gk a9ArwQVuADLnFrLwHHpXuH01eJwCB3oDTEg+AGQDxNLNFlCChYhyWmHiomCq zKatuzcrIYqmUKOT2s6zfnytQT4Qhs3XQndS0znWyg5SvHwzTAcuBOE4Pgzx XLyqV5xobvS9KXD7YaV1XnCyzjmOTFsqTTdBjaO64Nt6IGPHmtjxaUc881Ys ap2Xy+Y/gga6GWCCsVr+t82FtuGbjFoesUXaRFR1VQmpHydoewOLEtMB7jVO UNLYxgNJYYtUNesY+TZYvNa01Ge339oTdtyJve9g7YjR9jQz/qDJvFF0nZUj S9DntcWhgpJDyXJoEiVxO9bWOc4u5ZJsc70iXc5xfQh9O7GY+Xnvww7tcU37 80VbpV/rHCtKSGK8GNdoEC8O8WZ4oBzX3Lzt6SVs96gqkh9zNDklyGSwmb1R tDu7u2Xc0ObHBlpVarZVpM5n+HV26N5qtvHd5hyqOj296aGNng9aVM5Vmx/8 +uO43i+ix+X4XnzvxffDFh9eFzmjg5HK6IqfLL/XaLWL/4EVVKmbTwe2z3uu Yyr8BcPhCooKXWoaSnsyt6TRzRw5Hx1pxB9k2BsF9WNgF70SuxNK02uPP7tm u7//MHKTb382snQiRu5832lPCd5yTwk8f2+OpgV0NpYM48UD9ZnPRU85wExq s5GnhMAbPAj7jmFbT+C+opjKrcHLi8nE+XyWJ4QT85DQeHwlU7JZk7ReSjCu /OzeR8m188W9n/spC5Jby9YQooi63u1BDoWQHeC6vZu6iw57mAbJ3EWCCThq wq7sM8WpElPXsPg0izgNMpp6fUZmWKIDSxa6YTJ/hsWnEfsGyxUh5jtZ0wIX y8RnHd6JhYxD120PQgr7KPGD3FtR38iG1y1TlPCuFHPdOb89YKO0JDiJoYjf ijDXT5MOR62oYnne4fT4npPHHU5T56STCsgauhb02PXZI1Y1YPajHXPght0F 9bJF4vYJyTzoEYD5aY+woGk38LmfLOi8R4ijIBsQWNQjhF684zBOP+RQcPQz WFzv7ve9CF3X62UiOr4YEP5vjpv7VD4Qs78jS0ItS8DjoKfzPZQnQzF2cwVf CWxoYfKYt74tgoXXFYood+d9QhbSgWsjZLpPaR9lhGRAYLwbTVaXuF00sbhe G0yQJV1XwyyNXOgTwOsu1f73OqMmvt7x9PoRhhPN+wHHcdgD7R3plyNN6ADs tJv4uIWk7huA8GP2p3YCycuNuANSyWaPznYJGMesKxl6NKPewL93qMeAeu6z DPogMC8y1p8f6Pw44LffGMVYIUowYxTvjmA04J5hv7z48vsff/2K3/4WtbOm D86KbsDBsVjU5s0Q4A51cOg0o7legX1frnlnpJKAn46QDtxrKM1rEQ5alVSa gfry4hcUsvOtcqgEZwsFE2vAO7+hDAfzspW6ccyraDez2Xa7nZqgJwUtl1Mh l7P9eDxd6XVhPP2U4hU6dGUejzm8XlfAry8v/gNQSwMEFAAAAAgAlXaDPbBf VE7oAAAAZwIAABAAAAB0ZXN0dGhyZWFkeG1sLnJixY69TsMwFEb3SHmHixkK AzFxFgbX3RAPUCaCqrS5ECNqG/8UEOLduU5TJsoItiwdff6ufU5PeAqer7Xh Pq3fywIAysLjS9IeYdZtot7hKiTnrI+zfBMczOHuvixiTQDLwWPXVwZf4SNP Rwzxbfuc75hcEMEOfdDWzFtWV5ctAzQb22vzSMHt8vriqmULJYcuDErm4Vo5 J/mexkAoa/eBUJKPxdaw0ZSWSzEA3FBaPXi7XdGPZweHcyp90oniB9OpJP5I 9BdPQZ6TKcTmuGrz/6rNt2resa6erDYE4gDNBOMbrLcGWW5+AVBLAQIUABQA AAAIAAaBhj20toeh8QkAAKYzAAAYAAAAAAAAAAEAIAAAAAAAAABsaWJ4bWxf YWJvcnRjb3JlZHVtcC50eHRQSwECFAAUAAAACAAtgYY9KeaXYO8FAADGJwAA FQAAAAAAAAABACAAAAAnCgAAbGlieG1sX3N0YWNrdHJhY2UudHh0UEsBAhQA FAAAAAgAlXaDPbBfVE7oAAAAZwIAABAAAAAAAAAAAQAgAAAASRAAAHRlc3R0 aHJlYWR4bWwucmJQSwUGAAAAAAMAAwDHAAAAXxEAAAAA --mimepart_4cfc9e19a3a72_525b8fecb4341--