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 / TestsAssignee: 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
Reported 2013-05-28 01:38:45 PDT
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
Csaba Osztrogonác
Comment 1 2013-05-28 02:00:26 PDT
cc Zoltán, maybe you are interested in a GC related bug.
Allan Sandfeld Jensen
Comment 2 2013-05-28 03:44:28 PDT
First backtrace is in garbage collection, but the other is in painting just like the backtrace in bug 116854
Allan Sandfeld Jensen
Comment 3 2013-05-28 04:14:06 PDT
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
Comment 4 2013-05-28 05:52:05 PDT
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 ***
Note You need to log in before you can comment on or make changes to this bug.