RESOLVED FIXED Bug 81113
[Qt][WK2][Mac] MiniBrowser asserts at HashTable.h:480
https://bugs.webkit.org/show_bug.cgi?id=81113
Summary [Qt][WK2][Mac] MiniBrowser asserts at HashTable.h:480
Zeno Albisser
Reported 2012-03-14 08:36:29 PDT
ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) /Users/zeno/work/webkit/Source/JavaScriptCore/wtf/HashTable.h(480) : void WTF::HashTable<__AGLContextRec *, std::pair<__AGLContextRec *, WebCore::TextureMapperGLData::SharedGLData *>, WTF::PairFirstExtractor<std::pair<__AGLContextRec *, WebCore::TextureMapperGLData::SharedGLData *> >, WTF::PtrHash<__AGLContextRec *>, WTF::PairHashTraits<WTF::HashTraits<__AGLContextRec *>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData *> >, WTF::HashTraits<__AGLContextRec *> >::checkKey(__AGLContextRec *const &) 1 0x104d0f0cd 2 0x104d0eb5f 3 0x104d0ea9a 4 0x104d0ea0c 5 0x104d0e8e1 6 0x104d0e84d 7 0x104d0e5db 8 0x104d0e3a9 9 0x104d07575 10 0x104d037d6 11 0x104d03775 12 0x104d080f6 13 0x104d07503 14 0x104cf1e7a 15 0x1036dbef9 16 0x1036da159 17 0x1036488ce 18 0x10016f909 19 0x100165476 20 0x100165362 21 0x1002d07c0 22 0x10153997d 23 0x7fff8d28c8bf 24 0x7fff8d28fb75 Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0x00000000bbadbeef [Switching to process 67232 thread 0x6603] 0x0000000104d0f0d6 in WTF::HashTable<__AGLContextRec*, std::pair<__AGLContextRec*, WebCore::TextureMapperGLData::SharedGLData*>, WTF::PairFirstExtractor<std::pair<__AGLContextRec*, WebCore::TextureMapperGLData::SharedGLData*> >, WTF::PtrHash<__AGLContextRec*>, WTF::PairHashTraits<WTF::HashTraits<__AGLContextRec*>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData*> >, WTF::HashTraits<__AGLContextRec*> >::checkKey<WTF::HashMapTranslator<WTF::PairHashTraits<WTF::HashTraits<__AGLContextRec*>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData*> >, WTF::PtrHash<__AGLContextRec*> >, __AGLContextRec*> (this=0x106a2d698, key=@0x11643d1e0) at HashTable.h:480 480 ASSERT(!HashTranslator::equal(KeyTraits::emptyValue(), key)); (gdb) where #0 0x0000000104d0f0d6 in WTF::HashTable<__AGLContextRec*, std::pair<__AGLContextRec*, WebCore::TextureMapperGLData::SharedGLData*>, WTF::PairFirstExtractor<std::pair<__AGLContextRec*, WebCore::TextureMapperGLData::SharedGLData*> >, WTF::PtrHash<__AGLContextRec*>, WTF::PairHashTraits<WTF::HashTraits<__AGLContextRec*>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData*> >, WTF::HashTraits<__AGLContextRec*> >::checkKey<WTF::HashMapTranslator<WTF::PairHashTraits<WTF::HashTraits<__AGLContextRec*>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData*> >, WTF::PtrHash<__AGLContextRec*> >, __AGLContextRec*> (this=0x106a2d698, key=@0x11643d1e0) at HashTable.h:480 #1 0x0000000104d0eb5f in WTF::HashTable<__AGLContextRec*, std::pair<__AGLContextRec*, WebCore::TextureMapperGLData::SharedGLData*>, WTF::PairFirstExtractor<std::pair<__AGLContextRec*, WebCore::TextureMapperGLData::SharedGLData*> >, WTF::PtrHash<__AGLContextRec*>, WTF::PairHashTraits<WTF::HashTraits<__AGLContextRec*>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData*> >, WTF::HashTraits<__AGLContextRec*> >::add<WTF::HashMapTranslator<WTF::PairHashTraits<WTF::HashTraits<__AGLContextRec*>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData*> >, WTF::PtrHash<__AGLContextRec*> >, __AGLContextRec*, WebCore::TextureMapperGLData::SharedGLData*> (this=0x106a2d698, key=@0x11643d1e0, extra=@0x11643d198) at HashTable.h:670 #2 0x0000000104d0ea9a in WTF::HashMap<__AGLContextRec*, WebCore::TextureMapperGLData::SharedGLData*, WTF::PtrHash<__AGLContextRec*>, WTF::HashTraits<__AGLContextRec*>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData*> >::inlineAdd (this=0x106a2d698, key=@0x11643d1e0, mapped=@0x11643d198) at HashMap.h:325 #3 0x0000000104d0ea0c in WTF::HashMap<__AGLContextRec*, WebCore::TextureMapperGLData::SharedGLData*, WTF::PtrHash<__AGLContextRec*>, WTF::HashTraits<__AGLContextRec*>, WTF::HashTraits<WebCore::TextureMapperGLData::SharedGLData*> >::add (this=0x106a2d698, key=@0x11643d1e0, mapped=@0x11643d198) at HashMap.h:352 #4 0x0000000104d0e8e1 in WebCore::TextureMapperGLData::SharedGLData::SharedGLData (this=0x10e8ef2a0, glContext=0x0) at /Users/zeno/work/webkit/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:182 #5 0x0000000104d0e84d in WebCore::TextureMapperGLData::SharedGLData::SharedGLData (this=0x10e8ef2a0, glContext=0x0) at /Users/zeno/work/webkit/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:181 #6 0x0000000104d0e5db in WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData () at /Users/zeno/work/webkit/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:125 #7 0x0000000104d0e3a9 in WebCore::TextureMapperGLData::TextureMapperGLData (this=0x10e8ef1e0) at /Users/zeno/work/webkit/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:212 #8 0x0000000104d07575 in WebCore::TextureMapperGLData::TextureMapperGLData (this=0x10e8ef1e0) at /Users/zeno/work/webkit/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:213 #9 0x0000000104d037d6 in WebCore::TextureMapperGL::TextureMapperGL (this=0x10e8ef1a0) at /Users/zeno/work/webkit/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:244 #10 0x0000000104d03775 in WebCore::TextureMapperGL::TextureMapperGL (this=0x10e8ef1a0) at /Users/zeno/work/webkit/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:244 #11 0x0000000104d080f6 in WebCore::TextureMapperGL::create () at TextureMapperGL.h:61 #12 0x0000000104d07503 in WebCore::TextureMapper::platformCreateAccelerated () at /Users/zeno/work/webkit/Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp:699 #13 0x0000000104cf1e7a in WebCore::TextureMapper::create (mode=WebCore::TextureMapper::OpenGLMode) at /Users/zeno/work/webkit/Source/WebCore/platform/graphics/texmap/TextureMapper.cpp:80 #14 0x00000001036dbef9 in WebKit::WebLayerTreeRenderer::ensureRootLayer (this=0x10ee09b30) at /Users/zeno/work/webkit/Source/WebKit2/UIProcess/WebLayerTreeRenderer.cpp:355 #15 0x00000001036da159 in WebKit::WebLayerTreeRenderer::syncRemoteContent (this=0x10ee09b30) at /Users/zeno/work/webkit/Source/WebKit2/UIProcess/WebLayerTreeRenderer.cpp:370 #16 0x00000001036488ce in QQuickWebPage::updatePaintNode (this=0x10ee043b0, oldNode=0x0) at /Users/zeno/work/webkit/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp:178 #17 0x000000010016f909 in QQuickCanvasPrivate::updateDirtyNode (this=0x10e90fcf0, item=0x10ee043b0) at qquickcanvas.cpp:1808 #18 0x0000000100165476 in QQuickCanvasPrivate::updateDirtyNodes (this=0x10e90fcf0) at qquickcanvas.cpp:1629 #19 0x0000000100165362 in QQuickCanvasPrivate::syncSceneGraph (this=0x10e90fcf0) at qquickcanvas.cpp:261 #20 0x00000001002d07c0 in QQuickRenderThreadSingleContextWindowManager::run (this=0x10e9149d0) at qquickwindowmanager.cpp:638 #21 0x000000010153997d in QThreadPrivate::start (arg=0x10e9149d0) at qthread_unix.cpp:307 #22 0x00007fff8d28c8bf in _pthread_start () #23 0x00007fff8d28fb75 in thread_start ()
Attachments
patch for review. (2.10 KB, patch)
2012-03-21 03:42 PDT, Zeno Albisser
kenneth: review+
Zeno Albisser
Comment 1 2012-03-21 03:32:51 PDT
The problem here is, that we are creating the GLContext using a QWindow/QSurface, which internally uses NSOpenGLContext and afterwards we query for the current context using aglGetCurrentContext() which is incompatible. We should just use QOpenGLContext::currentContext() instead.
Zeno Albisser
Comment 2 2012-03-21 03:42:17 PDT
Created attachment 133004 [details] patch for review.
Kenneth Rohde Christiansen
Comment 3 2012-03-21 03:51:31 PDT
Comment on attachment 133004 [details] patch for review. View in context: https://bugs.webkit.org/attachment.cgi?id=133004&action=review > Source/WebCore/ChangeLog:8 > + on mac. Therfore we should use QOpenGLContext as well when ther*E*fore
Zeno Albisser
Comment 4 2012-03-21 04:58:19 PDT
Alexey Proskuryakov
Comment 5 2012-03-21 09:54:49 PDT
Comment on attachment 133004 [details] patch for review. View in context: https://bugs.webkit.org/attachment.cgi?id=133004&action=review > Source/WebCore/ChangeLog:3 > + [Qt][WK2][Mac] MiniBrowser asserts at HashTable.h:480 This needs a more appropriate title, now that the issue is better understood?. The problem turned out to be about neither HashTable nor MiniBrowser.
Note You need to log in before you can comment on or make changes to this bug.