Bug 100758

Summary: [Qt][WK2] QQuickWebView tests crash on rendering in xvfb
Product: WebKit Reporter: Balazs Kelemen <kbalazs>
Component: WebKit2Assignee: Nobody <webkit-unassigned>
Status: RESOLVED INVALID    
Severity: Normal CC: hausmann, jturcotte, kkristof, ossy
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 70236, 76773    

Balazs Kelemen
Reported 2012-10-30 07:26:05 PDT
Here is my reducted test case (added to tst_qquickwebview.cpp) void tst_QQuickWebView::showBasic() { QSizeF s(300, 400); webView()->setSize(s); m_window->setGeometry(0, 0, s.width(), s.height()); m_window->show(); webView()->setVisible(true); webView()->setUrl(QUrl::fromLocalFile(QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html"))); QTest::qWait(500); } It is flakily producing a crash under GraphicsContext3D::mappedSymbolName, because at ShaderSourceMap::iterator result = m_shaderSourceMap.find(shaders[i]); the shader is 0 (empty key value). The reason is that glGetAttachedShaders could not lookup the second shader. Here is the output of the reducted test (after added a check for GLerror() with printf and exit): PASS : tst_QQuickWebView::initTestCase() QWARN : tst_QQuickWebView::showBasic() QOpenGLShader::compile(Vertex): failed QWARN : tst_QQuickWebView::showBasic() QOpenGLShader::compile(Fragment): failed QWARN : tst_QQuickWebView::showBasic() QSGMaterialShader: Shader compilation failed: QWARN : tst_QQuickWebView::showBasic() "" QWARN : tst_QQuickWebView::showBasic() QOpenGLShaderProgram::uniformLocation( matrix ): shader program is not linked QWARN : tst_QQuickWebView::showBasic() QOpenGLShaderProgram::uniformLocation( color ): shader program is not linked GL_INVALID_VALUE So, it's clear that we should not ignore those warnings from Qt, and find out how could be compatible with xvfb. If it's not possible than we would have to dedicate a machine for API tests.
Attachments
Balazs Kelemen
Comment 1 2012-10-30 07:28:44 PDT
Ossy said these tests runs fine in his local environment (in xvfb), so it's affected by my environment (GPU I guess).
Balazs Kelemen
Comment 2 2012-10-30 12:12:00 PDT
Seems like for some reason compilation of the most simple shader program is failing in my env in xvfb (not tried in a separate program but Qt is failing with the QSGFlatColorMaterial). I think the difference between the bot and my env is that here it use the nvidia gl lib and not mesa. I'm not sure whether the nvidia implementation or Qt is incompatible with xvfb, but the consequence seems to be that we should not try to run tests (or anything) in xvfb if Qt was built against a vendor GL implementation (and not mesa). Since bots are ok, and developers don't have to use xvfb we can live with that.
Note You need to log in before you can comment on or make changes to this bug.