[MacRuby] #1260: Segfault occurs when parses a RSS content with bundled RSS library.
MacRuby
ruby-noreply at macosforge.org
Thu May 5 09:18:52 PDT 2011
#1260: Segfault occurs when parses a RSS content with bundled RSS library.
----------------------------------+-----------------------------------------
Reporter: watson1978@… | Owner: lsansonetti@…
Type: defect | Status: new
Priority: blocker | Milestone:
Component: MacRuby | Keywords:
----------------------------------+-----------------------------------------
Test Script:
{{{
#!ruby
require 'rss'
require 'open-uri'
url = "http://images.apple.com/main/rss/hotnews/hotnews.rss"
data = ""
open(url) do |f|
data = f.read
end
puts "* fetched RSS"
rss = RSS::Parser.parse(data, false)
puts "* Parsed RSS"
}}}
Result:
{{{
$ ruby19 tt.rb
* fetched RSS
* Parsed RSS
$ macruby tt.rb
* fetched RSS
zsh: segmentation fault macruby tt.rb
}}}
BackTrace:
{{{
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00007fff5f3fffe8
0x00000001001521a3 in std::_Rb_tree<objc_selector*,
std::pair<objc_selector* const, std::map<objc_class*,
rb_vm_method_source_t*, std::less<objc_class*>,
std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*>,
std::_Select1st<std::pair<objc_selector* const, std::map<objc_class*,
rb_vm_method_source_t*, std::less<objc_class*>,
std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*>
>, std::less<objc_selector*>, std::allocator<std::pair<objc_selector*
const, std::map<objc_class*, rb_vm_method_source_t*,
std::less<objc_class*>, std::allocator<std::pair<objc_class* const,
rb_vm_method_source_t*> > >*> > >::_S_key (__x=Cannot access memory at
address 0x7fff5f3fffe8
) at stl_tree.h:499
499 _S_key(_Const_Link_type __x)
(gdb) bt 20
#0 0x00000001001521a3 in std::_Rb_tree<objc_selector*,
std::pair<objc_selector* const, std::map<objc_class*,
rb_vm_method_source_t*, std::less<objc_class*>,
std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*>,
std::_Select1st<std::pair<objc_selector* const, std::map<objc_class*,
rb_vm_method_source_t*, std::less<objc_class*>,
std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*>
>, std::less<objc_selector*>, std::allocator<std::pair<objc_selector*
const, std::map<objc_class*, rb_vm_method_source_t*,
std::less<objc_class*>, std::allocator<std::pair<objc_class* const,
rb_vm_method_source_t*> > >*> > >::_S_key (__x=Cannot access memory at
address 0x7fff5f3fffe8
) at stl_tree.h:499
#1 0x00000001001522f5 in std::_Rb_tree<objc_selector*,
std::pair<objc_selector* const, std::map<objc_class*,
rb_vm_method_source_t*, std::less<objc_class*>,
std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*>,
std::_Select1st<std::pair<objc_selector* const, std::map<objc_class*,
rb_vm_method_source_t*, std::less<objc_class*>,
std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*>
>, std::less<objc_selector*>, std::allocator<std::pair<objc_selector*
const, std::map<objc_class*, rb_vm_method_source_t*,
std::less<objc_class*>, std::allocator<std::pair<objc_class* const,
rb_vm_method_source_t*> > >*> > >::find (this=0x102068418,
__k=@0x7fff5f4000b0) at stl_tree.h:1378
#2 0x00000001001523b9 in std::map<objc_selector*, std::map<objc_class*,
rb_vm_method_source_t*, std::less<objc_class*>,
std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*,
std::less<objc_selector*>, std::allocator<std::pair<objc_selector* const,
std::map<objc_class*, rb_vm_method_source_t*, std::less<objc_class*>,
std::allocator<std::pair<objc_class* const, rb_vm_method_source_t*> > >*>
> >::find (this=0x102068418, __x=@0x7fff5f4000b0) at stl_map.h:542
#3 0x000000010015ec64 in RoxorCore::method_sources_for_sel
(this=0x102068200, sel=0x7fff8877f560, create=false) at vm.h:897
#4 0x0000000100146ff2 in rb_vm_resolve_method (klass=0x200017d60,
sel=0x7fff8877f560) at vm.cpp:2090
#5 0x00000001001470dc in resolveInstanceMethod_imp (self=0x200017d60,
sel=0x7fff88878585, name=0x7fff8877f560) at vm.cpp:5156
#6 0x00007fff840a2937 in _class_resolveMethod ()
#7 0x000000010012ab53 in rb_vm_super_lookup (klass=0x20040f580,
sel=0x7fff8877f560, super_class_p=0x7fff5f400940) at dispatcher.cpp:316
#8 0x000000010012d167 in rb_vm_dispatch () at dispatcher.cpp:631
#9 0x00000001017009c4 in ?? ()
#10 0x00000001017219fe in ?? ()
#11 0x000000010012e65a in __rb_vm_rcall [inlined] () at /Users/watson/src
/macruby-trunk/dispatcher.cpp:161
#12 0x000000010012e65a in ruby_dispatch [inlined] () at /Users/watson/src
/macruby-trunk/dispatcher.cpp:466
#13 0x000000010012e65a in rb_vm_dispatch () at dispatcher.cpp:872
#14 0x00000001017009c4 in ?? ()
#15 0x00000001017219fe in ?? ()
#16 0x000000010012e65a in __rb_vm_rcall [inlined] () at /Users/watson/src
/macruby-trunk/dispatcher.cpp:161
#17 0x000000010012e65a in ruby_dispatch [inlined] () at /Users/watson/src
/macruby-trunk/dispatcher.cpp:466
#18 0x000000010012e65a in rb_vm_dispatch () at dispatcher.cpp:872
#19 0x00000001017009c4 in ?? ()
(More stack frames follow...)
(gdb)
}}}
--
Ticket URL: <http://www.macruby.org/trac/ticket/1260>
MacRuby <http://macruby.org/>
More information about the macruby-tickets
mailing list