Bug 81113

Summary: [Qt][WK2][Mac] MiniBrowser asserts at HashTable.h:480
Product: WebKit Reporter: Zeno Albisser <zeno>
Component: WebKit QtAssignee: Zeno Albisser <zeno>
Status: RESOLVED FIXED    
Severity: Normal    
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
patch for review. kenneth: review+

Description Zeno Albisser 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 ()
Comment 1 Zeno Albisser 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.
Comment 2 Zeno Albisser 2012-03-21 03:42:17 PDT
Created attachment 133004 [details]
patch for review.
Comment 3 Kenneth Rohde Christiansen 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
Comment 4 Zeno Albisser 2012-03-21 04:58:19 PDT
Committed r111524: <http://trac.webkit.org/changeset/111524>
Comment 5 Alexey Proskuryakov 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.