[Qtwebengine] webengine crash
Peter Varga
pvarga at inf.u-szeged.hu
Tue Feb 3 11:26:45 CET 2015
Hi Tom,
I tried to reproduce the reported problem but I couldn't. I compiled the
32bit Qt5 as I usually do:
made the build in an already set up 32bit chroot environment. Therefore
I suppose that the problem is
related to the cross-compilation. It might be possible some platform
specific configuration are passed
to the V8 compilation in a wrong way.
Could you elaborate a bit how you cross-compiled the Qt5? First of all I
need answers for the following
questions:
- Just to make things clear: your target is x86 32bit and Linux, isn't it?
- I generated a 32bit cross-toolchain with buildroot. I used the default
configuration. Did you change
anything compared to the default settings in buildroot? For example, do
you use uclibc or glibc?
- Which configuration options was passed to the Qt5's configure script?
I don't know how to set the
cross-compile toolchain. The easiest way is seemed to me to use the
-device-option CROSS_COMPILE=...
option but it is useless without specifying -device option.
Regards,
Peter
On 01/30/2015 04:20 PM, Tom Deblauwe wrote:
> Hello,
>
> I am trying out QtWebEngine 5.4.0 and I'm having a crash when enabling
> javascript. I am crosscompiling for 32-bit on a 64-bit linux using
> buildroot. I get it to compile and run, but only when I disable
> javascript. Upon further investigation, I found it has something to do
> with some types of javascript. I tested some things and it seems I get
> the crash with "jquery" version 1.11.0, like for example that is used on
> "xkcd.org". When I use the latest "jquery" I don't get the crash, e.g.
> jquery 2.1.3. Anyway, in all cases, the last part of the stack trace is
> almost the same.
>
> It always ends with the "WriteToFlat" function.
>
> I have set a breakpoint and the function works, it is not crashing on
> the first try, but after a while it seems.
> Then I also checked that it was not some sort of javascript out of
> memory thing, so I wrote a little javascript that just creates a huge
> array, and that fails gratiously, it doesn't crash. So it seems it is
> really some kind of internal issue. I suspect it has something to do
> with regular expressions, or maybe the "String::Flatten" function is
> called often in regexp's. Anyways, on this line:
>
> src/3rdparty/chromium/v8/src/jsregexp.cc:169
>
> There is a "pattern = String::Flatten(pattern);" call.
>
> So any clues in what direction I would have to search to find the problem?
>
> The problem is not reproducable when I use the regular desktop builds
> downloadable using the qt installer.
>
> On different sites I have differen backtraces, but all end with a call
> to "WriteToFlat<unsigned char>".
>
> And when I disable javascript, every site renders okay, so there is not
> a problem with the rendering itself, everything is seen as intended.
>
> Any help would be greatly appreciated!
>
> Best regards,
> Tom Deblauwe
>
>
> gdb --args ./browser --log-level=0 --single-process
> (gdb) bt
> #0 v8::internal::String::WriteToFlat<unsigned char> (src=0xdd094881,
> src at entry=0xdd0949a9,
> sink=sink at entry=0xdd094e8c
> "\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336)*)|.*)\\)|)\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336"...,
> f=119, f at entry=0, t=171) at
> ../../../src/3rdparty/chromium/v8/src/objects.cc:8823
> #1 0xeeceae64 in v8::internal::String::WriteToFlat<unsigned char>
> (src=0xdd0949ed,
> sink=0xdd094e15
> "\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336)*)|.*)\\)|)\336\357\276\255\336\357\276\255\336\357\276\255\336\357\276\255\336\357"...,
>
> f=f at entry=0, t=171, t at entry=263) at
> ../../../src/3rdparty/chromium/v8/src/objects.cc:8864
> #2 0xeecec384 in v8::internal::String::SlowFlatten
> (cons=cons at entry=..., pretenure=pretenure at entry=v8::internal::NOT_TENURED)
> at ../../../src/3rdparty/chromium/v8/src/objects.cc:1044
> #3 0xee9f800a in v8::internal::String::Flatten (string=...,
> pretenure=v8::internal::NOT_TENURED)
> at ../../../src/3rdparty/chromium/v8/src/objects-inl.h:3180
> #4 0xeec50fd8 in v8::internal::RegExpImpl::Compile (re=re at entry=...,
> pattern=pattern at entry=..., flag_str=...)
> at ../../../src/3rdparty/chromium/v8/src/jsregexp.cc:169
> #5 0xeed7e513 in __RT_impl_Runtime_RegExpCompile (isolate=0xe79450d0,
> args=...)
> at ../../../src/3rdparty/chromium/v8/src/runtime.cc:2124
> #6 v8::internal::Runtime_RegExpCompile (args_length=3,
> args_object=0xe16f2ee0, isolate=0xe79450d0)
> at ../../../src/3rdparty/chromium/v8/src/runtime.cc:2117
> #7 0x20e0a076 in ?? ()
> #8 0x20e594f2 in ?? ()
> #9 0x20e3b0c4 in ?? ()
> #10 0x20e1e85b in ?? ()
> #11 0x20e1eb3b in ?? ()
> #12 0x3750ad73 in ?? ()
> #13 0x3750fe29 in ?? ()
> #14 0x20e1e85b in ?? ()
> #15 0x20e80a11 in ?? ()
> #16 0x20e80b6b in ?? ()
> #17 0x20e1edf5 in ?? ()
> #18 0x20e1e0ea in ?? ()
> #19 0xeeae7336 in v8::internal::Invoke
> (is_construct=is_construct at entry=false, function=function at entry=...,
> receiver=...,
> receiver at entry=..., argc=argc at entry=0, args=args at entry=0x0) at
> ../../../src/3rdparty/chromium/v8/src/execution.cc:94
> #20 0xeeae9580 in v8::internal::Execution::Call
> (isolate=isolate at entry=0xe79450d0, callable=..., callable at entry=...,
> receiver=...,
> argc=argc at entry=0, argv=argv at entry=0x0,
> convert_receiver=convert_receiver at entry=false)
> at ../../../src/3rdparty/chromium/v8/src/execution.cc:149
> #21 0xeea1ceba in v8::Script::Run (this=0xe796bd48) at
> ../../../src/3rdparty/chromium/v8/src/api.cc:1637
> #22 0xf15b8aa8 in WebCore::V8ScriptRunner::runCompiledScript
> (script=..., context=0x5f404078, isolate=0xe79450d0)
> at
> ../../../src/3rdparty/chromium/third_party/WebKit/Source/bindings/v8/V8ScriptRunner.cpp:105
> #23 0xf1562e44 in WebCore::ScriptController::executeScriptAndReturnValue
> (this=0xe7970d88, context=..., source=...,
> corsStatus=WebCore::NotSharableCrossOrigin)
> at
> ../../../src/3rdparty/chromium/third_party/WebKit/Source/bindings/v8/ScriptController.cpp:187
> #24 0xf1564bc3 in WebCore::ScriptController::evaluateScriptInMainWorld
> (this=0xe7970d88, sourceCode=...,
> corsStatus=WebCore::NotSharableCrossOrigin,
> policy=WebCore::ScriptController::DoNotExecuteScriptWhenScriptsDisabled)
> at
> ../../../src/3rdparty/chromium/third_party/WebKit/Source/bindings/v8/ScriptController.cpp:582
> #25 0xf15649ad in WebCore::ScriptController::executeScriptInMainWorld
> (this=0xe7970d88, sourceCode=...,
> corsStatus=WebCore::NotSharableCrossOrigin)
> at
> ../../../src/3rdparty/chromium/third_party/WebKit/Source/bindings/v8/ScriptController.cpp:551
> #26 0xef763ff0 in WebCore::ScriptLoader::executeScript (this=0xe7972870,
> sourceCode=...)
> at
> ../../../src/3rdparty/chromium/third_party/WebKit/Source/core/dom/ScriptLoader.cpp:335
> #27 0xf1d0bf9f in
> WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent
> (this=0x466e47f0, pendingScript=...,
> pendingScriptType=WebCore::HTMLScriptRunner::PendingScriptBlockingParser)
> at
> ../../../src/3rdparty/chromium/third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.cpp:165
> #28 0xf1d0bda0 in
> WebCore::HTMLScriptRunner::executeParsingBlockingScript (this=0x466e47f0)
> at
> ../../../src/3rdparty/chromium/third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.cpp:134
> #29 0xf1d0c395 in
> WebCore::HTMLScriptRunner::executeParsingBlockingScripts (this=0x466e47f0)
> at
> ../../../src/3rdparty/chromium/third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.cpp:226
> #30 0xf1d0c556 in
> WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad
> (this=0x466e47f0, resource=0x467c03d0)
>
>
>
> _______________________________________________
> QtWebEngine mailing list
> QtWebEngine at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/qtwebengine
>
More information about the QtWebEngine
mailing list