Bug 116855
Summary: | [Qt] fast/js/create-lots-of-workers.html crashes with enabled parallel GC | ||
---|---|---|---|
Product: | WebKit | Reporter: | Ádám Kallai <kadam> |
Component: | Tools / Tests | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED DUPLICATE | ||
Severity: | Normal | CC: | allan.jensen, barraclough, fpizlo, oliver, ossy, rgabor, szledan, zarvai, zherczeg |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Bug Depends on: | |||
Bug Blocks: | 79668, 90957 |
Ádám Kallai
The layout test is failing with crash after r150751 (http://trac.webkit.org/changeset/150751). The crash appeared on 32bit Wk1/Wk2 bots. I could to reproduce it. Could you check what happend to it?
Backtrace with DumpRenderTree:
#0 0xf5a03bf2 in WTFCrash () at /home/kadam/webkit/WebKit/Source/WTF/wtf/Assertions.cpp:339
#1 0xf5a3f675 in WTF::OSAllocator::reserveUncommitted (bytes=<unknown type>, usage=UnknownUsage, writable=True, executable=False,
includesGuardPages=False) at /home/kadam/webkit/WebKit/Source/WTF/wtf/OSAllocatorPosix.cpp:58
#2 0xf5871a9a in WTF::PageReservation::reserve(unsigned int, WTF::OSAllocator::Usage, bool, bool) ()
at /home/kadam/webkit/WebKit/Source/WTF/wtf/PrintStream.h:58
#3 0xf58714ee in JSC::JSStack::JSStack (this=0x18dc4188, vm=0x18d552c0, capacity=<unknown type>)
at /home/kadam/webkit/WebKit/Source/JavaScriptCore/interpreter/JSStack.cpp:52
#4 0xf5866eac in JSC::Interpreter::Interpreter (this=0x18dc4180, vm=0x18d552c0)
at /home/kadam/webkit/WebKit/Source/JavaScriptCore/interpreter/Interpreter.cpp:284
#5 0xf596c30b in JSC::VM::VM (this=0x18d552c0, vmType=Default, heapType=SmallHeap)
at /home/kadam/webkit/WebKit/Source/JavaScriptCore/runtime/VM.cpp:199
#6 0xf596d4e2 in JSC::VM::create (heapType=SmallHeap) at /home/kadam/webkit/WebKit/Source/JavaScriptCore/runtime/VM.cpp:342
#7 0xf4e38e5d in WebCore::WorkerScriptController::WorkerScriptController(WebCore::WorkerContext*) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#8 0xf4e4042d in WebCore::WorkerContext::WorkerContext(WebCore::KURL const&, WTF::String const&, WTF::PassOwnPtr<WebCore::GroupSettings>, WebCore::WorkerThread*, WTF::PassRefPtr<WebCore::SecurityOrigin>) () at /usr/include/c++/4.6/bits/stl_algobase.h:218
#9 0xf4e3ebba in WebCore::DedicatedWorkerContext::DedicatedWorkerContext(WebCore::KURL const&, WTF::String const&, WTF::PassOwnPtr<WebCore::GroupSettings>, WebCore::DedicatedWorkerThread*, WTF::PassRefPtr<WebCore::SecurityOrigin>) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#10 0xf4e3eac3 in WebCore::DedicatedWorkerContext::create(WebCore::KURL const&, WTF::String const&, WTF::PassOwnPtr<WebCore::GroupSettings>, WebCore::DedicatedWorkerThread*, WTF::String const&, WebCore::ContentSecurityPolicy::HeaderType, WTF::PassRefPtr<WebCore::SecurityOrigin>)
() at /usr/include/c++/4.6/bits/stl_algobase.h:218
#11 0xf4e3f128 in WebCore::DedicatedWorkerThread::createWorkerContext(WebCore::KURL const&, WTF::String const&, WTF::PassOwnPtr<WebCore::GroupSettings>, WTF::String const&, WebCore::ContentSecurityPolicy::HeaderType, WTF::PassRefPtr<WebCore::SecurityOrigin>) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#12 0xf4e4cc4e in WebCore::WorkerThread::workerThread() () at /usr/include/c++/4.6/bits/stl_algobase.h:218
#13 0xf4e4cb39 in WebCore::WorkerThread::workerThreadStart(void*) () at /usr/include/c++/4.6/bits/stl_algobase.h:218
#14 0xf5a27c2a in WTF::threadEntryPoint (contextData=0x9020228) at /home/kadam/webkit/WebKit/Source/WTF/wtf/Threading.cpp:69
#15 0xf5a3ff90 in WTF::wtfThreadEntryPoint (param=0x905c9f8) at /home/kadam/webkit/WebKit/Source/WTF/wtf/ThreadingPthreads.cpp:195
#16 0xf2dcdd4c in start_thread (arg=0x10456b40) at pthread_create.c:308
#17 0xf2c09ace in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
Backtrace with WebKitTestRunner:
#0 0xf572ebf2 in WTFCrash () at /home/kadam/webkit/WebKit/Source/WTF/wtf/Assertions.cpp:339
#1 0xf4dfbad1 in WebCore::GraphicsContext3D::shaderSource (this=0xeb204ea0, shader=<unknown type>, string=0xe5cd45e4)
at /home/kadam/webkit/WebKit/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:861
#2 0xf4e12cfb in WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram(WTF::PassRefPtr<WebCore::GraphicsContext3D>, WTF::String const&, WTF::String const&) () at /usr/include/c++/4.6/bits/stl_algobase.h:218
#3 0xf4e13891 in WebCore::TextureMapperShaderProgram::create(WTF::PassRefPtr<WebCore::GraphicsContext3D>, unsigned int) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#4 0xf4e0644b in WebCore::TextureMapperGLData::SharedGLData::getShaderProgram (this=0xeb2085c8, options=<unknown type>)
at /home/kadam/webkit/WebKit/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:96
#5 0xf4e0864e in WebCore::TextureMapperGL::drawTexture (this=0xeb204b08, texture=<unknown type>, flags=0, textureSize=0xe5cd4734,
targetRect=0xe5cd4778, modelViewMatrix=0xe5cd4830, opacity=1, exposedEdges=<unknown type>)
at /home/kadam/webkit/WebKit/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:626
#6 0xf4e0840b in WebCore::TextureMapperGL::drawTexture (this=0xeb204b08, texture=0xeb20a878, targetRect=0xe5cd4778, matrix=0xe5cd4830,
opacity=1, exposedEdges=<unknown type>) at /home/kadam/webkit/WebKit/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:589
#7 0xf4ade50e in WebCore::TextureMapperTile::paint(WebCore::TextureMapper*, WebCore::TransformationMatrix const&, float, unsigned int) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#8 0xf4e16da9 in WebCore::CoordinatedBackingStore::paintTilesToTextureMapper(WTF::Vector<WebCore::TextureMapperTile*, 0u, WTF::CrashOnOverflow>&, WebCore::TextureMapper*, WebCore::TransformationMatrix const&, float, WebCore::FloatRect const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#9 0xf4e17121 in WebCore::CoordinatedBackingStore::paintToTextureMapper(WebCore::TextureMapper*, WebCore::FloatRect const&, WebCore::TransformationMatrix const&, float) () at /usr/include/c++/4.6/bits/stl_algobase.h:218
#10 0xf4adafa0 in WebCore::TextureMapperLayer::paintSelf(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#11 0xf4adb2ea in WebCore::TextureMapperLayer::paintSelfAndChildren(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#12 0xf4adb7be in WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#13 0xf4adcde0 in WebCore::TextureMapperLayer::paintRecursive(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#14 0xf4adb45b in WebCore::TextureMapperLayer::paintSelfAndChildren(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#15 0xf4adb7be in WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#16 0xf4adcde0 in WebCore::TextureMapperLayer::paintRecursive(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#17 0xf4adb45b in WebCore::TextureMapperLayer::paintSelfAndChildren(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#18 0xf4adb7be in WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#19 0xf4adcde0 in WebCore::TextureMapperLayer::paintRecursive(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#20 0xf4adb45b in WebCore::TextureMapperLayer::paintSelfAndChildren(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#21 0xf4adb7be in WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#22 0xf4adcde0 in WebCore::TextureMapperLayer::paintRecursive(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#23 0xf4adb45b in WebCore::TextureMapperLayer::paintSelfAndChildren(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#24 0xf4adb7be in WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#25 0xf4adcde0 in WebCore::TextureMapperLayer::paintRecursive(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#26 0xf4adb45b in WebCore::TextureMapperLayer::paintSelfAndChildren(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#27 0xf4adb7be in WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#28 0xf4adcde0 in WebCore::TextureMapperLayer::paintRecursive(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#29 0xf4adb45b in WebCore::TextureMapperLayer::paintSelfAndChildren(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#30 0xf4adb7be in WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#31 0xf4adcde0 in WebCore::TextureMapperLayer::paintRecursive(WebCore::TextureMapperPaintOptions const&) ()
at /usr/include/c++/4.6/bits/stl_algobase.h:218
#32 0xf4adaa49 in WebCore::TextureMapperLayer::paint() () at /usr/include/c++/4.6/bits/stl_algobase.h:218
#33 0xf4e1f2a5 in WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext(WebCore::TransformationMatrix const&, float, WebCore::FloatRect const&, unsigned int) () at /usr/include/c++/4.6/bits/stl_algobase.h:218
#34 0xf4018cab in WebKit::ContentsSGNode::render(QSGRenderNode::RenderState const&) ()
at /home/kadam/webkit/WebKit/Source/WTF/wtf/PassRefPtr.h:76
#35 0xf747484d in QSGDefaultRenderer::renderNodes(QSGNode* const*, int) () from /usr/local/Trolltech/Qt5/Qt-5.0.1/lib/libQt5Quick.so.5
#36 0xf747533c in QSGDefaultRenderer::render() () from /usr/local/Trolltech/Qt5/Qt-5.0.1/lib/libQt5Quick.so.5
#37 0xf747bd17 in QSGRenderer::renderScene(QSGBindable const&) () from /usr/local/Trolltech/Qt5/Qt-5.0.1/lib/libQt5Quick.so.5
#38 0xf747be7d in QSGRenderer::renderScene() () from /usr/local/Trolltech/Qt5/Qt-5.0.1/lib/libQt5Quick.so.5
#39 0xf748736e in QSGContext::renderNextFrame(QSGRenderer*, unsigned int) () from /usr/local/Trolltech/Qt5/Qt-5.0.1/lib/libQt5Quick.so.5
#40 0xf74bc174 in QQuickWindowPrivate::renderSceneGraph(QSize const&) () from /usr/local/Trolltech/Qt5/Qt-5.0.1/lib/libQt5Quick.so.5
#41 0xf75bad79 in ?? () from /usr/local/Trolltech/Qt5/Qt-5.0.1/lib/libQt5Quick.so.5
#42 0xf2a9c957 in ?? () from /usr/local/Trolltech/Qt5/Qt-5.0.1/lib/libQt5Core.so.5
#43 0xf2a04d4c in start_thread (arg=0xe5cd7b40) at pthread_create.c:308
#44 0xf285eace in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Csaba Osztrogonác
cc Zoltán, maybe you are interested in a GC related bug.
Allan Sandfeld Jensen
First backtrace is in garbage collection, but the other is in painting just like the backtrace in bug 116854
Allan Sandfeld Jensen
The first backtrace is actually a failed mmap, and the second is fail allocation of a gl shader object. So allocations are failing.
Csaba Osztrogonác
I found the root of the problem. Again. :) The problem is the limited number
of threads, see https://bugs.webkit.org/show_bug.cgi?id=88966#c8 for details.
I set the stack size to 1M on the bots, and now both of these tests
pass on WK1/WK2 in release/debug, so it's safe to unskip them.
*** This bug has been marked as a duplicate of bug 88966 ***