Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GC crash #2908

Closed
YorickPeterse opened this issue Jan 28, 2014 · 13 comments
Closed

GC crash #2908

YorickPeterse opened this issue Jan 28, 2014 · 13 comments

Comments

@YorickPeterse
Copy link
Member

@YorickPeterse YorickPeterse commented Jan 28, 2014

When running a production app in a multi-threaded environment the following error once in a while pops up:

Rubinius Crash Report #rbxcrashreport

Error: signal SIGSEGV

[[Backtrace]]
ruby[0x59c600]
/lib64/libpthread.so.0(+0xfae0)[0x7f3734432ae0]
ruby(rb_gc_mark+0x1e)[0x6f3dee]
ruby(_ZN8rubinius4Data4Info4markEPNS_6ObjectERNS_10ObjectMarkE+0x6e)[0x69150e]
ruby(_ZN8rubinius16GarbageCollector11scan_objectEPNS_6ObjectE+0x80)[0x704990]
ruby(_ZN8rubinius7BakerGC7collectEPNS_6GCDataEPNS_17YoungCollectStatsE+0x2a8)[0x701858]
ruby(_ZN8rubinius12ObjectMemory13collect_youngEPNS_5StateEPNS_6GCDataEPNS_17YoungCollectStatsE+0x75)[0x646165]
ruby(_ZN8rubinius12ObjectMemory13collect_maybeEPNS_5StateERNS_11GCTokenImplEPNS_9CallFrameE+0x238)[0x6464e8]
ruby(_ZN8rubinius2VM13collect_maybeERNS_11GCTokenImplEPNS_9CallFrameE+0x3f)[0x67e3af]
ruby[0x68b661]
ruby(_ZN8rubinius5Class8allocateEPNS_5StateERNS_11GCTokenImplEPNS_9CallFrameE+0x489)[0x68cad9]
ruby(_ZN8rubinius10Primitives14class_allocateEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0xb2)[0x639c22]
ruby(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x1e97)[0x5c1777]
ruby(_ZN8rubinius11MachineCode19execute_specializedINS_17SplatOnlyArgumentEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x264)[0x5ff604]
ruby(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x1f9a)[0x5c187a]
ruby(_ZN8rubinius11MachineCode19execute_specializedINS_11OneArgumentEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x298)[0x5ff178]
ruby(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x1e97)[0x5c1777]
ruby(_ZN8rubinius16BlockEnvironment19execute_interpreterEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE+0x201)[0x685b41]
ruby(_ZN8rubinius16BlockEnvironment6invokeEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE+0x7d)[0x68623d]
ruby(_ZN8rubinius16BlockEnvironment4callEPNS_5StateEPNS_9CallFrameERNS_9ArgumentsEi+0x3d)[0x68645d]
ruby(rbx_yield_stack+0xca)[0x76deaa]
[0x7f37339404f7]

[[System Info]]
sysname: Linux
nodename: ip-10-33-185-48
release: 3.4.73-64.112.amzn1.x86_64
version: #1 SMP Tue Dec 10 01:50:05 UTC 2013
machine: x86_64

Sadly I'm currently not aware what's causing it, though it might be that @dbussink's recent GC fixes solve the above issue (haven't been able to confirm that yet).

@YorickPeterse
Copy link
Member Author

@YorickPeterse YorickPeterse commented Feb 11, 2014

Experienced another one on 2.2.5:

Rubinius Crash Report #rbxcrashreport

Error: signal SIGSEGV

[[Backtrace]]
review_collector[0x5a07cd]
/lib64/libc.so.6(+0x34c20)[0x7fe385ce4c20]
review_collector(_ZN8rubinius7BakerGC10saw_objectEPNS_6ObjectE+0x1b)[0x71194b]
review_collector(rb_gc_mark+0x32)[0x702be2]
review_collector(_ZN8rubinius4Data4Info4markEPNS_6ObjectERNS_10ObjectMarkE+0x51)[0x6aa1c1]
review_collector(_ZN8rubinius16GarbageCollector11scan_objectEPNS_6ObjectE+0xc2)[0x7158c2]
review_collector(_ZN8rubinius7BakerGC7collectEPNS_6GCDataEPNS_17YoungCollectStatsE+0x2c7)[0x711e97]
review_collector(_ZN8rubinius12ObjectMemory13collect_youngEPNS_5StateEPNS_6GCDataEPNS_17YoungCollectStatsE+0x71)[0x64b761]
review_collector(_ZN8rubinius12ObjectMemory13collect_maybeEPNS_5StateERNS_11GCTokenImplEPNS_9CallFrameE+0x12d)[0x64b4dd]
review_collector(_ZN8rubinius2VM13collect_maybeERNS_11GCTokenImplEPNS_9CallFrameE+0x45)[0x699da5]
review_collector[0x6a5e23]
review_collector(_ZN8rubinius5Class8allocateEPNS_5StateERNS_11GCTokenImplEPNS_9CallFrameE+0x40)[0x6a58b0]
review_collector(rbx_create_instance+0x2a)[0x77022a]
[0x7fe35116fd2f]

[[System Info]]
sysname: Linux
nodename: ip-10-55-94-115
release: 3.4.73-64.112.amzn1.x86_64
version: #1 SMP Tue Dec 10 01:50:05 UTC 2013
machine: x86_64

Currently looking into to see if this is caused by Nokogiri or something else.

@YorickPeterse
Copy link
Member Author

@YorickPeterse YorickPeterse commented Feb 11, 2014

Another one that occurred before the one reported above:

Rubinius Crash Report #rbxcrashreport

Error: signal SIGSEGV

[[Backtrace]]
review_collector[0x5a07cd]
/lib64/libc.so.6(+0x34c20)[0x7f19e16cec20]
review_collector(rb_gc_mark+0x17)[0x702bc7]
review_collector(_ZN8rubinius4Data4Info4markEPNS_6ObjectERNS_10ObjectMarkE+0x51)[0x6aa1c1]
review_collector(_ZN8rubinius16GarbageCollector11scan_objectEPNS_6ObjectE+0xc2)[0x7158c2]
review_collector(_ZN8rubinius7BakerGC7collectEPNS_6GCDataEPNS_17YoungCollectStatsE+0x2c7)[0x711e97]
review_collector(_ZN8rubinius12ObjectMemory13collect_youngEPNS_5StateEPNS_6GCDataEPNS_17YoungCollectStatsE+0x71)[0x64b761]
review_collector(_ZN8rubinius12ObjectMemory13collect_maybeEPNS_5StateERNS_11GCTokenImplEPNS_9CallFrameE+0x12d)[0x64b4dd]
review_collector(_ZN8rubinius2VM13collect_maybeERNS_11GCTokenImplEPNS_9CallFrameE+0x45)[0x699da5]
review_collector(rbx_prologue_check+0x71)[0x76ee91]
[0x7f19e2eb1b47]
@YorickPeterse
Copy link
Member Author

@YorickPeterse YorickPeterse commented Feb 11, 2014

I suppose the one good part here is that the issue re-occurs consistently. Now I need to figure out a way to reproduce it in a standalone environment.

@dbussink
Copy link
Member

@dbussink dbussink commented Feb 11, 2014

What is review_collector here? Maybe a problematic C extension?

@tak1n
Copy link
Member

@tak1n tak1n commented Feb 11, 2014

Don't know if i should open a new issue for this but it looks like a similar error trace for me...

[9] pry(main)> [BUG: Invalid byte array size]
ruby(_ZN8rubinius3bugEPKc+0x43) [0x59fd13]
ruby(_ZN8rubinius9ByteArray13create_pinnedEPNS_5StateEl+0xa6) [0x680126]
ruby(_ZN8rubinius6String13create_pinnedEPNS_5StateEPNS_6FixnumE+0x6a) [0x6c7e5a]
ruby(_ZN8rubinius2IO11socket_readEPNS_5StateEPNS_6FixnumES4_S4_PNS_9CallFrameE+0x5b) [0x6a2feb]
ruby(_ZN8rubinius10Primitives14io_socket_readEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0xe5) [0x6263a5]
ruby(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x1429) [0x5bb739]
ruby(_ZN8rubinius11MachineCode19execute_specializedINS_16GenericArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x21c) [0x5f826c]
ruby(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x1429) [0x5bb739]
ruby(_ZN8rubinius11MachineCode19execute_specializedINS_11OneArgumentEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x2ac) [0x5f994c]
ruby(_ZN8rubinius12CompiledCode16default_executorEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0xbf) [0x686c2f]
ruby(_ZN8rubinius8CallSite19empty_cache_privateEPNS_5StateEPS0_PNS_9CallFrameERNS_9ArgumentsE+0x138) [0x682108]
ruby(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x1429) [0x5bb739]
ruby(_ZN8rubinius16BlockEnvironment19execute_interpreterEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE+0x214) [0x67e964]
ruby(_ZN8rubinius16BlockEnvironment6invokeEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE+0x7d) [0x67f07d]
ruby(_ZN8rubinius16BlockEnvironment4callEPNS_5StateEPNS_9CallFrameERNS_9ArgumentsEi+0x3d) [0x67f29d]
ruby(_ZN8rubinius4Proc4callEPNS_5StateEPNS_9CallFrameERNS_9ArgumentsE+0x2ac) [0x6c222c]
ruby(_ZN8rubinius10Primitives9proc_callEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x89) [0x61ce29]
ruby(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x2c76) [0x5bcf86]
ruby(_ZN8rubinius11MachineCode19execute_specializedINS_17SplatOnlyArgumentEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x278) [0x5f9e08]
ruby(_ZN8rubinius8CallSite11empty_cacheEPNS_5StateEPS0_PNS_9CallFrameERNS_9ArgumentsE+0x138) [0x6822e8]
ruby(_ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE+0x2c76) [0x5bcf86]
ruby(_ZN8rubinius11MachineCode19execute_specializedINS_11NoArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE+0x1e4) [0x5fa1c4]
ruby(_ZN8rubinius8Dispatch4sendEPNS_5StateEPNS_9CallFrameERNS_10LookupDataERNS_9ArgumentsENS_19MethodMissingReasonE+0x6c) [0x59628c]
ruby(_ZN8rubinius6Object4sendEPNS_5StateEPNS_9CallFrameEPNS_6SymbolEb+0xa6) [0x6b68b6]
ruby(_ZN8rubinius6Thread13in_new_threadEPv+0x456) [0x6d4e86]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x7e9a) [0x7fe812881e9a]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7fe811d9c3fd]

***Repl Closed***

Error occurs when Im using the sublime2 extension SublimeREPL
Starting sublime from terminal so current terminal ruby is used (rbx 2.2.4 for this case)

@dbussink
Copy link
Member

@dbussink dbussink commented Feb 11, 2014

@Benny1992 That's a very different issue, so probably best as a separate one. Do you have a way to reproduce that?

@tak1n
Copy link
Member

@tak1n tak1n commented Feb 11, 2014

okay opening a new one
only appearing with SublimeREPL
pry in terminal works fine, after some input with sublimeREPL it's appearing again
so reproducable with sublime2

@YorickPeterse
Copy link
Member Author

@YorickPeterse YorickPeterse commented Feb 12, 2014

@dbussink No, it's one of our applications that is misbehaving. The proctitle is simply set to review_collector.

@YorickPeterse
Copy link
Member Author

@YorickPeterse YorickPeterse commented Feb 12, 2014

Output of the backtraces as shown in GDB (http://hastebin.com/raw/suyudovuga link that's a bit easier to read):

'The field value consists of a single absolute URI' in HTTP spec                                                                                                           [82/1804]
daemon.rb:139: Finished message 07636422-ef25-4524-8d27-af5edc882e0c in 3.030494 seconds at 2014-02-12T12:16:37+01:00

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd93c9700 (LWP 15608)]
0x00007ffff5e2a017 in mark (node=0x7fffcc373dd0) at xml_node.c:17
17        rb_gc_mark(DOC_RUBY_OBJECT(node->doc));
(gdb) bt
#0  0x00007ffff5e2a017 in mark (node=0x7fffcc373dd0) at xml_node.c:17
#1  0x00000000006aef01 in rubinius::Data::Info::mark (this=<optimized out>, t=0x7fffda2c0cf8, mark=...) at vm/builtin/data.cpp:155
#2  0x000000000071ab62 in rubinius::GarbageCollector::scan_object (this=0x154f880, obj=0x7fffda2c0cf8) at vm/gc/gc.cpp:108
#3  0x0000000000716fa7 in rubinius::BakerGC::collect (this=0x154f880, data=0x7fffd93b1748, stats=0x7fffd93b1728) at vm/gc/baker.cpp:215
#4  0x00000000006539e1 in rubinius::ObjectMemory::collect_young (this=0x154f3b0, state=0x7fffd93b17f8, data=0x7fffd93b1748, stats=0x7fffd93b1728) at vm/object_memory.cpp:574
#5  0x000000000065375d in rubinius::ObjectMemory::collect_maybe (this=0x154f3b0, state=0x7fffd93b17f8, gct=..., call_frame=<optimized out>) at vm/object_memory.cpp:531
#6  0x000000000069e995 in rubinius::VM::collect_maybe (this=0x7fffcc373dd0, gct=..., call_frame=0x0) at vm/vm.cpp:310
#7  0x00000000006aab13 in collect_and_allocate (state=<optimized out>, gct=..., self=<optimized out>, self=<optimized out>, self=<optimized out>, self=<optimized out>, 
    self=<optimized out>, calling_environment=<optimized out>, state=<optimized out>, gct=..., self=<optimized out>, calling_environment=<optimized out>)
    at vm/builtin/class.cpp:66
#8  rubinius::(anonymous namespace)::allocate_packed (state=0x7fffd93c8ec0, gct=..., self=0x7fffd93b1858, calling_environment=0x7fffd93b2150) at vm/builtin/class.cpp:114
#9  0x00000000006aa570 in rubinius::Class::allocate (this=0x2465290, state=0x7fffd93c8ec0, gct=..., calling_environment=0x7fffd93b2150) at vm/builtin/class.cpp:133
#10 0x0000000000614759 in rubinius::Primitives::class_allocate (state=0x7fffd93c8ec0, call_frame=0x7fffd93b2150, exec=0x7ffff54ae6c8, mod=0x1580e20, args=...)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/gen/method_primitives.cpp:3800
#11 0x00000000005b6eff in execute (this=<optimized out>, state=<optimized out>, args=..., this=<optimized out>, state=<optimized out>, call_frame=<optimized out>, args=...)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/builtin/call_site.hpp:108
#12 rubinius::MachineCode::interpreter (state=0x7fffd93c8ec0, mcode=0x7fffd0118e60, call_frame=0x7fffd93b2150)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/gen/instruction_implementations.hpp:543
#13 0x00000000006093f3 in rubinius::MachineCode::execute_specialized<rubinius::OneArgument> (state=0x7fffd93c8ec0, previous=<optimized out>, exec=0x7fffeeab2820, mod=0x2460d00, 
    args=...) at vm/machine_code.cpp:671
#14 0x00000000005b6eff in execute (this=<optimized out>, state=<optimized out>, args=..., this=<optimized out>, state=<optimized out>, call_frame=<optimized out>, args=...)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/builtin/call_site.hpp:108
#15 rubinius::MachineCode::interpreter (state=0x7fffd93c8ec0, mcode=0x7fffd0112d90, call_frame=0x7fffd93b2960)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/gen/instruction_implementations.hpp:543
#16 0x00000000006a61ff in rubinius::BlockEnvironment::execute_interpreter (state=0x7fffd93c8ec0, previous=<optimized out>, env=0x7fffdaa5a728, args=..., invocation=...)
    at vm/builtin/block_environment.cpp:356
#17 0x00000000006a5e00 in rubinius::BlockEnvironment::invoke (state=0x7fffd93c8ec0, previous=0x1, env=0x7fffdaa5a728, args=..., invocation=...)
    at vm/builtin/block_environment.cpp:91
#18 0x00000000006a644d in rubinius::BlockEnvironment::call (this=0x0, state=0x7fffcc373dd0, call_frame=0x1, args=..., flags=<error reading variable: Value out of range.>)
    at vm/builtin/block_environment.cpp:375
#19 0x00000000006e77c5 in rubinius::Proc::call (this=<optimized out>, state=0x7fffd93c8ec0, call_frame=0x7fffd93b2dd8, args=...) at vm/builtin/proc.cpp:119
#20 0x000000000062e5ff in rubinius::Primitives::proc_call (state=0x7fffd93c8ec0, call_frame=0x7fffd93b2dd8, exec=0x7ffff54ba258, mod=0x158ae60, args=...)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/gen/method_primitives.cpp:14988
#21 0x0000000000772122 in execute (this=<optimized out>, state=<optimized out>, call_frame=<optimized out>, args=..., this=<optimized out>, state=<optimized out>, 
    call_frame=<optimized out>, args=...) at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/builtin/call_site.hpp:108
#22 rbx_splat_send_private (state=0x7fffd93c8ec0, call_frame=0x7fffd93b2dd8, call_site=0x7fffdbabe8f0, count=<optimized out>, call_flags=<optimized out>, args=<optimized out>)
    at vm/llvm/jit_util.cpp:147
---Type <return> to continue, or q <return> to quit---
#23 0x00007ffff62c608c in ?? ()
#24 0x00007fffd93c8ec0 in ?? ()
#25 0x0000000000000000 in ?? ()
@YorickPeterse
Copy link
Member Author

@YorickPeterse YorickPeterse commented Feb 12, 2014

After compiling Nokogiri from source (to ensure that the changes made to it by @dbussink are present) I'm presented with the following segfault instead:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd95af700 (LWP 18447)]
rubinius::BakerGC::saw_object (this=0x154f880, obj=0x746f6f7220) at vm/gc/baker.cpp:86
86          if(!obj->young_object_p()) return NULL;
(gdb) bt
#0  rubinius::BakerGC::saw_object (this=0x154f880, obj=0x746f6f7220) at vm/gc/baker.cpp:86
#1  0x0000000000707cd2 in rb_gc_mark (ptr=140736751232752) at vm/capi/gc.cpp:44
#2  0x00000000006aef01 in rubinius::Data::Info::mark (this=<optimized out>, t=0x7fffdae5ff00, mark=...) at vm/builtin/data.cpp:155
#3  0x000000000071ab62 in rubinius::GarbageCollector::scan_object (this=0x154f880, obj=0x7fffdae5ff00) at vm/gc/gc.cpp:108
#4  0x0000000000716fa7 in rubinius::BakerGC::collect (this=0x154f880, data=0x7fffd9593a28, stats=0x7fffd9593a08) at vm/gc/baker.cpp:215
#5  0x00000000006539e1 in rubinius::ObjectMemory::collect_young (this=0x154f3b0, state=0x7fffd9593ad8, data=0x7fffd9593a28, stats=0x7fffd9593a08) at vm/object_memory.cpp:574
#6  0x000000000065375d in rubinius::ObjectMemory::collect_maybe (this=0x154f3b0, state=0x7fffd9593ad8, gct=..., call_frame=<optimized out>) at vm/object_memory.cpp:531
#7  0x000000000069e995 in rubinius::VM::collect_maybe (this=0x154f880, gct=..., call_frame=0x716a40 <rubinius::BakerGC::saw_object(rubinius::Object*)>) at vm/vm.cpp:310
#8  0x00000000006aab13 in collect_and_allocate (state=<optimized out>, gct=..., self=<optimized out>, self=<optimized out>, self=<optimized out>, self=<optimized out>, 
    self=<optimized out>, calling_environment=<optimized out>, state=<optimized out>, gct=..., self=<optimized out>, calling_environment=<optimized out>)
    at vm/builtin/class.cpp:66
#9  rubinius::(anonymous namespace)::allocate_packed (state=0x7fffc80008c0, gct=..., self=0x7fffd9593b38, calling_environment=0x7fffd9594430) at vm/builtin/class.cpp:114
#10 0x00000000006aa570 in rubinius::Class::allocate (this=0x2430900, state=0x7fffc80008c0, gct=..., calling_environment=0x7fffd9594430) at vm/builtin/class.cpp:133
#11 0x0000000000614759 in rubinius::Primitives::class_allocate (state=0x7fffc80008c0, call_frame=0x7fffd9594430, exec=0x7ffff54ae6c8, mod=0x1580e20, args=...)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/gen/method_primitives.cpp:3800
#12 0x00000000005b6eff in execute (this=<optimized out>, state=<optimized out>, args=..., this=<optimized out>, state=<optimized out>, call_frame=<optimized out>, args=...)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/builtin/call_site.hpp:108
#13 rubinius::MachineCode::interpreter (state=0x7fffc80008c0, mcode=0x7fffcc2d4510, call_frame=0x7fffd9594430)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/gen/instruction_implementations.hpp:543
#14 0x0000000000609e68 in rubinius::MachineCode::execute_specialized<rubinius::ThreeArguments> (state=0x7fffc80008c0, previous=<optimized out>, exec=0x7ffff4a382d8, 
    mod=0x24e0d80, args=...) at vm/machine_code.cpp:671
#15 0x00000000005a7629 in rubinius::Dispatch::send (this=0x7fffd95947e0, state=0x7fffc80008c0, call_frame=0x7fffd9594ac0, lookup=..., args=..., reason=<optimized out>)
    at vm/dispatch.cpp:49
#16 0x00000000007016e9 in rubinius::capi::capi_funcall_backend_native (env=0x7fffc80008c0, file=<optimized out>, line=-648349152, recv=0x7fffed158658, method=0x1d20e, 
    arg_count=<optimized out>, args=0x7fffd95948a0, block=0x1a) at vm/capi/capi.cpp:135
#17 0x00000000007033d8 in rb_funcall (receiver=<optimized out>, method_name=119310, arg_count=3) at vm/capi/capi.cpp:465
#18 0x00007ffff629c4c2 in reduce0 (val=22345856, data=<optimized out>, self=<optimized out>) at cparse.c:724
#19 0x00000000006d6b81 in rubinius::GenericArguments::invoke (state=<optimized out>, nm=0x7fffed15fb98, env=<optimized out>, args=...) at vm/builtin/native_method.cpp:572
#20 0x00000000006d468a in rubinius::NativeMethod::executor_implementation<rubinius::GenericArguments> (state=0x7fffc80008c0, previous=<optimized out>, exec=0x7fffba3e5a50, 
    mod=0x1580f60, args=...) at vm/builtin/native_method.cpp:710
#21 0x00000000006e7848 in rubinius::Proc::call (this=<optimized out>, state=0x7fffc80008c0, call_frame=0x7fffd9594f58, args=...) at vm/builtin/proc.cpp:122
#22 0x000000000062e5ff in rubinius::Primitives::proc_call (state=0x7fffc80008c0, call_frame=0x7fffd9594f58, exec=0x7ffff54ba258, mod=0x158ae60, args=...)
    at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/gen/method_primitives.cpp:14988
#23 0x0000000000772122 in execute (this=<optimized out>, state=<optimized out>, call_frame=<optimized out>, args=..., this=<optimized out>, state=<optimized out>, 
    call_frame=<optimized out>, args=...) at /home/yorickpeterse/Private/Projects/ruby/rubinius/vm/builtin/call_site.hpp:108
#24 rbx_splat_send_private (state=0x7fffc80008c0, call_frame=0x7fffd9594f58, call_site=0x7fffdb995918, count=<optimized out>, call_flags=<optimized out>, args=<optimized out>)
    at vm/llvm/jit_util.cpp:147
#25 0x00007ffff62d7bbc in ?? ()
#26 0x00007fffd9595268 in ?? ()
#27 0x0000000000000000 in ?? ()
@YorickPeterse
Copy link
Member Author

@YorickPeterse YorickPeterse commented Feb 12, 2014

GDB backtraces of all threads: http://hastebin.com/raw/mawehegoqa

@YorickPeterse
Copy link
Member Author

@YorickPeterse YorickPeterse commented Feb 12, 2014

And one with optimizations disabled: http://hastebin.com/raw/rolenakale

@YorickPeterse
Copy link
Member Author

@YorickPeterse YorickPeterse commented Feb 26, 2014

Closing this one in favour of #2957 and the Nokogiri issue mentioned above as this particular case should be fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants
You can’t perform that action at this time.