WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
72883
[GTK] SIGSEV when a WebKitDownload fails
https://bugs.webkit.org/show_bug.cgi?id=72883
Summary
[GTK] SIGSEV when a WebKitDownload fails
Sergio Villar Senin
Reported
2011-11-21 07:30:32 PST
This is what I got from valgrind ==4981== Conditional jump or move depends on uninitialised value(s) ==4981== at 0xACB4EF9: JSC::NumericStrings::add(int) (NumericStrings.h:52) ==4981== by 0xAEBE0C0: JSC::JSValue::toPrimitiveString(JSC::ExecState*) const (JSValue.cpp:212) ==4981== by 0xADE6B9B: cti_op_add (JITStubs.cpp:1327) ==4981== by 0xADE6603: JSC::JITThunks::tryCacheGetByID(JSC::ExecState*, JSC::CodeBlock*, JSC::ReturnAddressPtr, JSC::JSValue, JSC::Identifier const&, JSC::PropertySlot const&, JSC::StructureStubInfo*) (JITStubs.cpp:952) ==4981== by 0x7FEFFDB5F: ??? ==4981== by 0x420CF9F: ??? ==4981== by 0xFFFF00000000003F: ??? ==4981== by 0x420D01F: ??? ==4981== ==4981== Conditional jump or move depends on uninitialised value(s) ==4981== at 0xACB4EF9: JSC::NumericStrings::add(int) (NumericStrings.h:52) ==4981== by 0xAEBE0C0: JSC::JSValue::toPrimitiveString(JSC::ExecState*) const (JSValue.cpp:212) ==4981== by 0xAD5CE08: JSC::jsAdd(JSC::ExecState*, JSC::JSValue, JSC::JSValue) (Operations.h:308) ==4981== by 0xAD570A2: operationValueAdd (DFGOperations.cpp:232) ==4981== by 0x79519334: ??? ==4981== by 0xADC09DD: JSC::JITCode::execute(JSC::RegisterFile*, JSC::ExecState*, JSC::JSGlobalData*) (JITCode.h:115) ==4981== by 0xADBD715: JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::ScopeChainNode*, JSC::JSObject*) (Interpreter.cpp:1002) ==4981== by 0xAE702D3: JSC::evaluate(JSC::ExecState*, JSC::ScopeChainNode*, JSC::SourceCode const&, JSC::JSValue, JSC::JSValue*) (Completion.cpp:70) ==4981== by 0x718BA2C: WebCore::JSMainThreadExecState::evaluate(JSC::ExecState*, JSC::ScopeChainNode*, JSC::SourceCode const&, JSC::JSValue, JSC::JSValue*) (JSMainThreadExecState.h:58) ==4981== by 0x71C1935: WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&, WebCore::DOMWrapperWorld*) (ScriptController.cpp:146) ==4981== by 0x71C1A39: WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&) (ScriptController.cpp:163) ==4981== by 0x73F4CD9: WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&) (ScriptElement.cpp:301) ==4981== ASSERTION FAILED: !callLinkInfo->isLinked() ../../Source/JavaScriptCore/jit/JIT.cpp(717) : static void JSC::JIT::linkFor(JSC::JSFunction*, JSC::CodeBlock*, JSC::CodeBlock*, JSC::AbstractMacroAssembler<JSC::X86Assembler>::CodePtr, JSC::CallLinkInfo*, JSC::JSGlobalData*, JSC::CodeSpecializationKind) ==4981== Conditional jump or move depends on uninitialised value(s) ==4981== at 0x134E119C: ??? (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0x134E21CC: _Unwind_Backtrace (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0xEA76C3D: backtrace (backtrace.c:91) ==4981== by 0xAEF8F7B: WTFGetBacktrace (Assertions.cpp:168) ==4981== by 0xAEF8FAB: WTFReportBacktrace (Assertions.cpp:197) ==4981== by 0xADD30A1: JSC::JIT::linkFor(JSC::JSFunction*, JSC::CodeBlock*, JSC::CodeBlock*, JSC::MacroAssemblerCodePtr, JSC::CallLinkInfo*, JSC::JSGlobalData*, JSC::CodeSpecializationKind) (JIT.cpp:717) ==4981== by 0xADF4380: JSC::lazyLinkFor(JSC::ExecState*, JSC::CodeSpecializationKind) (JITStubs.cpp:2304) ==4981== by 0xADEADC4: cti_vm_lazyLinkCall (JITStubs.cpp:2314) ==4981== by 0xADE6603: JSC::JITThunks::tryCacheGetByID(JSC::ExecState*, JSC::CodeBlock*, JSC::ReturnAddressPtr, JSC::JSValue, JSC::Identifier const&, JSC::PropertySlot const&, JSC::StructureStubInfo*) (JITStubs.cpp:952) ==4981== by 0x7FEFFDB5F: ??? ==4981== by 0x2728951F: ??? ==4981== by 0x420DE1F: ??? ==4981== ==4981== Conditional jump or move depends on uninitialised value(s) ==4981== at 0x134E35F7: ??? (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0xEA982E5: dl_iterate_phdr (dl-iteratephdr.c:75) ==4981== by 0x134E3CE5: _Unwind_Find_FDE (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0x134E11BF: ??? (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0x134E21CC: _Unwind_Backtrace (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0xEA76C3D: backtrace (backtrace.c:91) ==4981== by 0xAEF8F7B: WTFGetBacktrace (Assertions.cpp:168) ==4981== by 0xAEF8FAB: WTFReportBacktrace (Assertions.cpp:197) ==4981== by 0xADD30A1: JSC::JIT::linkFor(JSC::JSFunction*, JSC::CodeBlock*, JSC::CodeBlock*, JSC::MacroAssemblerCodePtr, JSC::CallLinkInfo*, JSC::JSGlobalData*, JSC::CodeSpecializationKind) (JIT.cpp:717) ==4981== by 0xADF4380: JSC::lazyLinkFor(JSC::ExecState*, JSC::CodeSpecializationKind) (JITStubs.cpp:2304) ==4981== by 0xADEADC4: cti_vm_lazyLinkCall (JITStubs.cpp:2314) ==4981== by 0xADE6603: JSC::JITThunks::tryCacheGetByID(JSC::ExecState*, JSC::CodeBlock*, JSC::ReturnAddressPtr, JSC::JSValue, JSC::Identifier const&, JSC::PropertySlot const&, JSC::StructureStubInfo*) (JITStubs.cpp:952) ==4981== ==4981== Conditional jump or move depends on uninitialised value(s) ==4981== at 0x134E35FC: ??? (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0xEA982E5: dl_iterate_phdr (dl-iteratephdr.c:75) ==4981== by 0x134E3CE5: _Unwind_Find_FDE (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0x134E11BF: ??? (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0x134E21CC: _Unwind_Backtrace (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0xEA76C3D: backtrace (backtrace.c:91) ==4981== by 0xAEF8F7B: WTFGetBacktrace (Assertions.cpp:168) ==4981== by 0xAEF8FAB: WTFReportBacktrace (Assertions.cpp:197) ==4981== by 0xADD30A1: JSC::JIT::linkFor(JSC::JSFunction*, JSC::CodeBlock*, JSC::CodeBlock*, JSC::MacroAssemblerCodePtr, JSC::CallLinkInfo*, JSC::JSGlobalData*, JSC::CodeSpecializationKind) (JIT.cpp:717) ==4981== by 0xADF4380: JSC::lazyLinkFor(JSC::ExecState*, JSC::CodeSpecializationKind) (JITStubs.cpp:2304) ==4981== by 0xADEADC4: cti_vm_lazyLinkCall (JITStubs.cpp:2314) ==4981== by 0xADE6603: JSC::JITThunks::tryCacheGetByID(JSC::ExecState*, JSC::CodeBlock*, JSC::ReturnAddressPtr, JSC::JSValue, JSC::Identifier const&, JSC::PropertySlot const&, JSC::StructureStubInfo*) (JITStubs.cpp:952) ==4981== ==4981== Conditional jump or move depends on uninitialised value(s) ==4981== at 0x134E3505: ??? (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0xEA982E5: dl_iterate_phdr (dl-iteratephdr.c:75) ==4981== by 0x134E3CE5: _Unwind_Find_FDE (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0x134E11BF: ??? (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0x134E21CC: _Unwind_Backtrace (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0xEA76C3D: backtrace (backtrace.c:91) ==4981== by 0xAEF8F7B: WTFGetBacktrace (Assertions.cpp:168) ==4981== by 0xAEF8FAB: WTFReportBacktrace (Assertions.cpp:197) ==4981== by 0xADD30A1: JSC::JIT::linkFor(JSC::JSFunction*, JSC::CodeBlock*, JSC::CodeBlock*, JSC::MacroAssemblerCodePtr, JSC::CallLinkInfo*, JSC::JSGlobalData*, JSC::CodeSpecializationKind) (JIT.cpp:717) ==4981== by 0xADF4380: JSC::lazyLinkFor(JSC::ExecState*, JSC::CodeSpecializationKind) (JITStubs.cpp:2304) ==4981== by 0xADEADC4: cti_vm_lazyLinkCall (JITStubs.cpp:2314) ==4981== by 0xADE6603: JSC::JITThunks::tryCacheGetByID(JSC::ExecState*, JSC::CodeBlock*, JSC::ReturnAddressPtr, JSC::JSValue, JSC::Identifier const&, JSC::PropertySlot const&, JSC::StructureStubInfo*) (JITStubs.cpp:952) ==4981== ==4981== Conditional jump or move depends on uninitialised value(s) ==4981== at 0x134E3533: ??? (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0xEA982E5: dl_iterate_phdr (dl-iteratephdr.c:75) ==4981== by 0x134E3CE5: _Unwind_Find_FDE (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0x134E11BF: ??? (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0x134E21CC: _Unwind_Backtrace (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0xEA76C3D: backtrace (backtrace.c:91) ==4981== by 0xAEF8F7B: WTFGetBacktrace (Assertions.cpp:168) ==4981== by 0xAEF8FAB: WTFReportBacktrace (Assertions.cpp:197) ==4981== by 0xADD30A1: JSC::JIT::linkFor(JSC::JSFunction*, JSC::CodeBlock*, JSC::CodeBlock*, JSC::MacroAssemblerCodePtr, JSC::CallLinkInfo*, JSC::JSGlobalData*, JSC::CodeSpecializationKind) (JIT.cpp:717) ==4981== by 0xADF4380: JSC::lazyLinkFor(JSC::ExecState*, JSC::CodeSpecializationKind) (JITStubs.cpp:2304) ==4981== by 0xADEADC4: cti_vm_lazyLinkCall (JITStubs.cpp:2314) ==4981== by 0xADE6603: JSC::JITThunks::tryCacheGetByID(JSC::ExecState*, JSC::CodeBlock*, JSC::ReturnAddressPtr, JSC::JSValue, JSC::Identifier const&, JSC::PropertySlot const&, JSC::StructureStubInfo*) (JITStubs.cpp:952) ==4981== ==4981== Use of uninitialised value of size 8 ==4981== at 0x134E14B6: ??? (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0x134E21CC: _Unwind_Backtrace (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0xEA76C3D: backtrace (backtrace.c:91) ==4981== by 0xAEF8F7B: WTFGetBacktrace (Assertions.cpp:168) ==4981== by 0xAEF8FAB: WTFReportBacktrace (Assertions.cpp:197) ==4981== by 0xADD30A1: JSC::JIT::linkFor(JSC::JSFunction*, JSC::CodeBlock*, JSC::CodeBlock*, JSC::MacroAssemblerCodePtr, JSC::CallLinkInfo*, JSC::JSGlobalData*, JSC::CodeSpecializationKind) (JIT.cpp:717) ==4981== by 0xADF4380: JSC::lazyLinkFor(JSC::ExecState*, JSC::CodeSpecializationKind) (JITStubs.cpp:2304) ==4981== by 0xADEADC4: cti_vm_lazyLinkCall (JITStubs.cpp:2314) ==4981== by 0xADE6603: JSC::JITThunks::tryCacheGetByID(JSC::ExecState*, JSC::CodeBlock*, JSC::ReturnAddressPtr, JSC::JSValue, JSC::Identifier const&, JSC::PropertySlot const&, JSC::StructureStubInfo*) (JITStubs.cpp:952) ==4981== by 0x7FEFFDB5F: ??? ==4981== by 0x2728951F: ??? ==4981== by 0x420DE1F: ??? ==4981== ==4981== Conditional jump or move depends on uninitialised value(s) ==4981== at 0x134E14B9: ??? (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0x134E21CC: _Unwind_Backtrace (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0xEA76C3D: backtrace (backtrace.c:91) ==4981== by 0xAEF8F7B: WTFGetBacktrace (Assertions.cpp:168) ==4981== by 0xAEF8FAB: WTFReportBacktrace (Assertions.cpp:197) ==4981== by 0xADD30A1: JSC::JIT::linkFor(JSC::JSFunction*, JSC::CodeBlock*, JSC::CodeBlock*, JSC::MacroAssemblerCodePtr, JSC::CallLinkInfo*, JSC::JSGlobalData*, JSC::CodeSpecializationKind) (JIT.cpp:717) ==4981== by 0xADF4380: JSC::lazyLinkFor(JSC::ExecState*, JSC::CodeSpecializationKind) (JITStubs.cpp:2304) ==4981== by 0xADEADC4: cti_vm_lazyLinkCall (JITStubs.cpp:2314) ==4981== by 0xADE6603: JSC::JITThunks::tryCacheGetByID(JSC::ExecState*, JSC::CodeBlock*, JSC::ReturnAddressPtr, JSC::JSValue, JSC::Identifier const&, JSC::PropertySlot const&, JSC::StructureStubInfo*) (JITStubs.cpp:952) ==4981== by 0x7FEFFDB5F: ??? ==4981== by 0x2728951F: ??? ==4981== by 0x420DE1F: ??? ==4981== ==4981== Conditional jump or move depends on uninitialised value(s) ==4981== at 0xEA76B61: backtrace_helper (backtrace.c:68) ==4981== by 0x134E219C: _Unwind_Backtrace (in /lib/x86_64-linux-gnu/libgcc_s.so.1) ==4981== by 0xEA76C3D: backtrace (backtrace.c:91) ==4981== by 0xAEF8F7B: WTFGetBacktrace (Assertions.cpp:168) ==4981== by 0xAEF8FAB: WTFReportBacktrace (Assertions.cpp:197) ==4981== by 0xADD30A1: JSC::JIT::linkFor(JSC::JSFunction*, JSC::CodeBlock*, JSC::CodeBlock*, JSC::MacroAssemblerCodePtr, JSC::CallLinkInfo*, JSC::JSGlobalData*, JSC::CodeSpecializationKind) (JIT.cpp:717) ==4981== by 0xADF4380: JSC::lazyLinkFor(JSC::ExecState*, JSC::CodeSpecializationKind) (JITStubs.cpp:2304) ==4981== by 0xADEADC4: cti_vm_lazyLinkCall (JITStubs.cpp:2314) ==4981== by 0xADE6603: JSC::JITThunks::tryCacheGetByID(JSC::ExecState*, JSC::CodeBlock*, JSC::ReturnAddressPtr, JSC::JSValue, JSC::Identifier const&, JSC::PropertySlot const&, JSC::StructureStubInfo*) (JITStubs.cpp:952) ==4981== by 0x7FEFFDB5F: ??? ==4981== by 0x2728951F: ??? ==4981== by 0x420DE1F: ??? ==4981== ==4981== Conditional jump or move depends on uninitialised value(s) ==4981== at 0xAEF906A: WTFReportBacktrace (Assertions.cpp:199) ==4981== by 0xADD30A1: JSC::JIT::linkFor(JSC::JSFunction*, JSC::CodeBlock*, JSC::CodeBlock*, JSC::MacroAssemblerCodePtr, JSC::CallLinkInfo*, JSC::JSGlobalData*, JSC::CodeSpecializationKind) (JIT.cpp:717) ==4981== by 0xADF4380: JSC::lazyLinkFor(JSC::ExecState*, JSC::CodeSpecializationKind) (JITStubs.cpp:2304) ==4981== by 0xADEADC4: cti_vm_lazyLinkCall (JITStubs.cpp:2314) ==4981== by 0xADE6603: JSC::JITThunks::tryCacheGetByID(JSC::ExecState*, JSC::CodeBlock*, JSC::ReturnAddressPtr, JSC::JSValue, JSC::Identifier const&, JSC::PropertySlot const&, JSC::StructureStubInfo*) (JITStubs.cpp:952) ==4981== by 0x7FEFFDB5F: ??? ==4981== by 0x2728951F: ??? ==4981== by 0x420DE1F: ??? ==4981== by 0x2729959F: ???
Attachments
Patch
(1.65 KB, patch)
2011-11-29 09:18 PST
,
Sergio Villar Senin
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Filip Pizlo
Comment 1
2011-11-21 11:06:06 PST
Are you saying that you're getting this assertion whilst running with valgrind? Or are you getting this assertion even when not running with valgrind? Also, what are the steps to reproduce? I visited the attached URL in a debug build of trunk (
r100935
) and could not see this assertion. Thanks!
Sergio Villar Senin
Comment 2
2011-11-22 03:17:51 PST
(In reply to
comment #1
)
> Are you saying that you're getting this assertion whilst running with valgrind? Or are you getting this assertion even when not running with valgrind?
I'm always getting the assertion (with debug builds obviously). I just used valgrind to get the trace.
> Also, what are the steps to reproduce? I visited the attached URL in a debug build of trunk (
r100935
) and could not see this assertion.
I'm using WebKitGtk+ which recently got DFG JIT enabled, may be related?
Sergio Villar Senin
Comment 3
2011-11-22 06:35:26 PST
(In reply to
comment #2
)
> (In reply to
comment #1
) > > Are you saying that you're getting this assertion whilst running with valgrind? Or are you getting this assertion even when not running with valgrind? > > I'm always getting the assertion (with debug builds obviously). I just used valgrind to get the trace.
It seems that my above sentence does not properly answer your question. When visiting technorati.com with WebKitGtk+ I always get a SIGSEV, the trace is quite weird as all the pointers seem to be correct (and that code has not been recently changed also). That's why I decided to run it under valgrind, and under those conditions, I always get the assertion mentioned in the title.
Sergio Villar Senin
Comment 4
2011-11-22 06:36:25 PST
This is the trace of the SIGSEV BTW: (gdb) bt #0 0x0000000000000031 in ?? () #1 0x00007ffff5956640 in WebCore::gotChunkCallback (msg=0x2121020, chunk=0x217d6d0, data=0x21fab60) at ../../Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:364 #2 0x00007ffff350b671 in g_cclosure_marshal_VOID__BOXED (closure=0x21fbb20, return_value=0x0, n_param_values=2, param_values=0x1e5a810, invocation_hint=0x7fffffffad80, marshal_data=0x0) at gmarshal.c:574 #3 0x00007ffff3508dc2 in g_closure_invoke (closure=0x21fbb20, return_value=0x0, n_param_values=2, param_values=0x1e5a810, invocation_hint=0x7fffffffad80) at gclosure.c:774 #4 0x00007ffff3522397 in signal_emit_unlocked_R (node=0x1cb1a40, detail=0, instance=0x2121020, emission_return=0x0, instance_and_params=0x1e5a810) at gsignal.c:3302 #5 0x00007ffff3521591 in g_signal_emit_valist (instance=0x2121020, signal_id=453, detail=0, var_args=0x7fffffffb008) at gsignal.c:3033 #6 0x00007ffff3521ae9 in g_signal_emit (instance=0x2121020, signal_id=453, detail=0) at gsignal.c:3090 #7 0x00007ffff3763d8b in soup_message_got_chunk (msg=0x2121020, chunk=0x217d6d0) at soup-message.c:1046 #8 0x00007ffff376983d in read_body_chunk (msg=0x2121020) at soup-message-io.c:516 #9 0x00007ffff376a8a7 in io_read (sock=0x1f978c0, msg=0x2121020) at soup-message-io.c:989 #10 0x00007ffff350aba4 in g_cclosure_marshal_VOID__VOID (closure=0x2139110, return_value=0x0, n_param_values=1, param_values=0x1d400c0, invocation_hint=0x7fffffffd370, marshal_data=0x0) at gmarshal.c:85 #11 0x00007ffff3508dc2 in g_closure_invoke (closure=0x2139110, return_value=0x0, n_param_values=1, param_values=0x1d400c0, invocation_hint=0x7fffffffd370) at gclosure.c:774 #12 0x00007ffff3522397 in signal_emit_unlocked_R (node=0x1ceec30, detail=0, instance=0x1f978c0, emission_return=0x0, instance_and_params=0x1d400c0) at gsignal.c:3302 #13 0x00007ffff3521591 in g_signal_emit_valist (instance=0x1f978c0, signal_id=466, detail=0, var_args=0x7fffffffd5f8) at gsignal.c:3033 #14 0x00007ffff3521ae9 in g_signal_emit (instance=0x1f978c0, signal_id=466, detail=0) at gsignal.c:3090 #15 0x00007ffff377e0f8 in socket_read_watch (pollable=0x1d61d00, user_data=0x1f978c0) at soup-socket.c:1265 #16 0x00007ffff35c0b8a in pollable_source_dispatch (source=0x1ef1e40, callback=0x7ffff377e09b <socket_read_watch>, user_data=0x1f978c0) at gpollableinputstream.c:232 #17 0x00007ffff33fef42 in g_main_dispatch (context=0x544f00) at gmain.c:2513 #18 0x00007ffff33ffc03 in g_main_context_dispatch (context=0x544f00) at gmain.c:3050 #19 0x00007ffff33ffde6 in g_main_context_iterate (context=0x544f00, block=1, dispatch=1, self=0x573d30) at gmain.c:3121 #20 0x00007ffff33ffeaa in g_main_context_iteration (context=0x544f00, may_block=1) at gmain.c:3182 #21 0x00007ffff3601346 in g_application_run (application=0x617000, argc=1, argv=0x7fffffffda88) at gapplication.c:1320 #22 0x0000000000430ca2 in main (argc=1, argv=0x7fffffffda88) at ../../src/ephy-main.c:472
Sergio Villar Senin
Comment 5
2011-11-22 06:37:03 PST
***
Bug 72912
has been marked as a duplicate of this bug. ***
Filip Pizlo
Comment 6
2011-11-22 13:38:04 PST
This trace looks like the JIT emitted a jump to an invalid location (0x0000000000000031) and we're faulting because that pointer contains no executable (or readable, or writable, even) memory. I'm not sure if the assertion you're seeing is informative; it might just be valgrind interacting strangely with JSC's code patching logic. I visited the technorati.com site on the Mac port and did not get any crashes. Does yours crash upon visiting the site, or only after you navigate around for a bit? (In reply to
comment #4
)
> This is the trace of the SIGSEV BTW: > (gdb) bt > #0 0x0000000000000031 in ?? () > #1 0x00007ffff5956640 in WebCore::gotChunkCallback (msg=0x2121020, chunk=0x217d6d0, data=0x21fab60) > at ../../Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:364 > #2 0x00007ffff350b671 in g_cclosure_marshal_VOID__BOXED (closure=0x21fbb20, return_value=0x0, n_param_values=2, param_values=0x1e5a810, > invocation_hint=0x7fffffffad80, marshal_data=0x0) at gmarshal.c:574 > #3 0x00007ffff3508dc2 in g_closure_invoke (closure=0x21fbb20, return_value=0x0, n_param_values=2, param_values=0x1e5a810, > invocation_hint=0x7fffffffad80) at gclosure.c:774 > #4 0x00007ffff3522397 in signal_emit_unlocked_R (node=0x1cb1a40, detail=0, instance=0x2121020, emission_return=0x0, > instance_and_params=0x1e5a810) at gsignal.c:3302 > #5 0x00007ffff3521591 in g_signal_emit_valist (instance=0x2121020, signal_id=453, detail=0, var_args=0x7fffffffb008) at gsignal.c:3033 > #6 0x00007ffff3521ae9 in g_signal_emit (instance=0x2121020, signal_id=453, detail=0) at gsignal.c:3090 > #7 0x00007ffff3763d8b in soup_message_got_chunk (msg=0x2121020, chunk=0x217d6d0) at soup-message.c:1046 > #8 0x00007ffff376983d in read_body_chunk (msg=0x2121020) at soup-message-io.c:516 > #9 0x00007ffff376a8a7 in io_read (sock=0x1f978c0, msg=0x2121020) at soup-message-io.c:989 > #10 0x00007ffff350aba4 in g_cclosure_marshal_VOID__VOID (closure=0x2139110, return_value=0x0, n_param_values=1, param_values=0x1d400c0, > invocation_hint=0x7fffffffd370, marshal_data=0x0) at gmarshal.c:85 > #11 0x00007ffff3508dc2 in g_closure_invoke (closure=0x2139110, return_value=0x0, n_param_values=1, param_values=0x1d400c0, > invocation_hint=0x7fffffffd370) at gclosure.c:774 > #12 0x00007ffff3522397 in signal_emit_unlocked_R (node=0x1ceec30, detail=0, instance=0x1f978c0, emission_return=0x0, > instance_and_params=0x1d400c0) at gsignal.c:3302 > #13 0x00007ffff3521591 in g_signal_emit_valist (instance=0x1f978c0, signal_id=466, detail=0, var_args=0x7fffffffd5f8) at gsignal.c:3033 > #14 0x00007ffff3521ae9 in g_signal_emit (instance=0x1f978c0, signal_id=466, detail=0) at gsignal.c:3090 > #15 0x00007ffff377e0f8 in socket_read_watch (pollable=0x1d61d00, user_data=0x1f978c0) at soup-socket.c:1265 > #16 0x00007ffff35c0b8a in pollable_source_dispatch (source=0x1ef1e40, callback=0x7ffff377e09b <socket_read_watch>, user_data=0x1f978c0) > at gpollableinputstream.c:232 > #17 0x00007ffff33fef42 in g_main_dispatch (context=0x544f00) at gmain.c:2513 > #18 0x00007ffff33ffc03 in g_main_context_dispatch (context=0x544f00) at gmain.c:3050 > #19 0x00007ffff33ffde6 in g_main_context_iterate (context=0x544f00, block=1, dispatch=1, self=0x573d30) at gmain.c:3121 > #20 0x00007ffff33ffeaa in g_main_context_iteration (context=0x544f00, may_block=1) at gmain.c:3182 > #21 0x00007ffff3601346 in g_application_run (application=0x617000, argc=1, argv=0x7fffffffda88) at gapplication.c:1320 > #22 0x0000000000430ca2 in main (argc=1, argv=0x7fffffffda88) at ../../src/ephy-main.c:472
Sergio Villar Senin
Comment 7
2011-11-23 01:14:20 PST
(In reply to
comment #6
)
> This trace looks like the JIT emitted a jump to an invalid location (0x0000000000000031) and we're faulting because that pointer contains no executable (or readable, or writable, even) memory. > > I'm not sure if the assertion you're seeing is informative; it might just be valgrind interacting strangely with JSC's code patching logic.
Yeah it might be the case, because I never hit the assertion running it only with the debugger, just when it's run under valgrind.
> I visited the technorati.com site on the Mac port and did not get any crashes. Does yours crash upon visiting the site, or only after you navigate around for a bit?
Just visiting the site, looks like at the very end of the loading process. But it is not the unique case, for example a colleague of mine got it here
http://javierparra.eu/?p=721
(
bug 72912
). Just ping me on IRC (svillar) and I'd be glad to help debugging the issue.
Filip Pizlo
Comment 8
2011-11-23 01:20:18 PST
> > Just visiting the site, looks like at the very end of the loading process. But it is not the unique case, for example a colleague of mine got it here
http://javierparra.eu/?p=721
(
bug 72912
). > > Just ping me on IRC (svillar) and I'd be glad to help debugging the issue.
I will look into this. But apologies if I don't get around to it until Monday, since I am technically on holiday. :-)
Sergio Villar Senin
Comment 9
2011-11-23 01:31:22 PST
(In reply to
comment #8
)
> > > > Just visiting the site, looks like at the very end of the loading process. But it is not the unique case, for example a colleague of mine got it here
http://javierparra.eu/?p=721
(
bug 72912
). > > > > Just ping me on IRC (svillar) and I'd be glad to help debugging the issue. > > I will look into this. But apologies if I don't get around to it until Monday, since I am technically on holiday. :-)
Heh don't worry, enjoy your holidays!
Xan Lopez
Comment 10
2011-11-24 15:37:09 PST
The crash also happens 100% of the time in this (even simpler) page:
http://cscs.umich.edu/~crshalizi/weblog/841.html
Filip Pizlo
Comment 11
2011-11-24 16:16:06 PST
(In reply to
comment #10
)
> The crash also happens 100% of the time in this (even simpler) page:
http://cscs.umich.edu/~crshalizi/weblog/841.html
This is good to know - thanks for your help in reducing this bug! :-)
Filip Pizlo
Comment 12
2011-11-28 09:42:49 PST
I looked into this using
r101263
and the Mac port. I cannot get a crash on any of the three sites mentioned: technorati.com,
http://javierparra.eu/?p=721
, or
http://cscs.umich.edu/~crshalizi/weblog/841.html
. Perhaps this is a GTK+ issue?
Martin Robinson
Comment 13
2011-11-28 09:46:09 PST
(In reply to
comment #12
)
> I looked into this using
r101263
and the Mac port. I cannot get a crash on any of the three sites mentioned: technorati.com,
http://javierparra.eu/?p=721
, or
http://cscs.umich.edu/~crshalizi/weblog/841.html
. > > Perhaps this is a GTK+ issue?
From what I understand it didn't appear until we turned on the DFG JIT. If it would be helpful we can arrange an interactive debugging session over the IRC channel.
Filip Pizlo
Comment 14
2011-11-28 09:49:17 PST
(In reply to
comment #13
)
> (In reply to
comment #12
) > > I looked into this using
r101263
and the Mac port. I cannot get a crash on any of the three sites mentioned: technorati.com,
http://javierparra.eu/?p=721
, or
http://cscs.umich.edu/~crshalizi/weblog/841.html
. > > > > Perhaps this is a GTK+ issue? > > From what I understand it didn't appear until we turned on the DFG JIT. If it would be helpful we can arrange an interactive debugging session over the IRC channel.
Yup, I'd be happy to help.
Filip Pizlo
Comment 15
2011-11-28 16:34:38 PST
Note, I've now also tested this in 32-bit mode, and still, no crash.
Sergio Villar Senin
Comment 16
2011-11-28 17:28:43 PST
(In reply to
comment #15
)
> Note, I've now also tested this in 32-bit mode, and still, no crash.
hmm I tried disabling DFG and the crash is still here, so maybe you're right and there is something Gtk specific
Sergio Villar Senin
Comment 17
2011-11-29 09:09:37 PST
(In reply to
comment #15
)
> Note, I've now also tested this in 32-bit mode, and still, no crash.
Sorry for the noise Filip, at the end it was indeed a GTK issue
Sergio Villar Senin
Comment 18
2011-11-29 09:18:16 PST
Created
attachment 116983
[details]
Patch
Carlos Garcia Campos
Comment 19
2011-11-29 09:20:49 PST
Comment on
attachment 116983
[details]
Patch LGTM
Xan Lopez
Comment 20
2011-11-29 09:28:46 PST
Comment on
attachment 116983
[details]
Patch OK.
Sergio Villar Senin
Comment 21
2011-11-29 09:36:59 PST
Comment on
attachment 116983
[details]
Patch Clearing flags on attachment: 116983 Committed
r101393
: <
http://trac.webkit.org/changeset/101393
>
Sergio Villar Senin
Comment 22
2011-11-29 09:37:13 PST
All reviewed patches have been landed. Closing bug.
Filip Pizlo
Comment 23
2011-11-29 12:35:47 PST
(In reply to
comment #17
)
> (In reply to
comment #15
) > > Note, I've now also tested this in 32-bit mode, and still, no crash. > > Sorry for the noise Filip, at the end it was indeed a GTK issue
No worries! Glad that this is now resolved.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug