Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

[QWebView] QSslSocket and segmentation fault



  • Hi,

    I currently program a browser, and i encounter a problem with some web pages when i load them. (for example, "this one":http://euw.leagueoflegends.com/fr)
    The problem seem to come from OpenSSL. I found an article which was talking about installing OpenSSL's DLLs. So i did it, i have downloaded "Win32 OpenSSL v1.0.1i" on "this page":http://slproweb.com/products/Win32OpenSSL.html. After that, i have copied and pasted "libeay.dll", "libssl.dll" and "ssleay.dll" in Qt's "bin" folder.
    I have launched my browser again but it still crash when loading these pages.
    I tried to read "call stack" (backtrace ?), but i don't know how to do it.
    Here is the backtrace (i hope it is) :

    @
    0 WTFCrash C:\Qt\5.3\mingw482_32\bin\Qt5WebKitd.dll 0xa74fa85
    1 WebCore::RenderGeometryMap::mapToContainer(WebCore::FloatRect const&, WebCore::RenderLayerModelObject const*) const C:\Qt\5.3\mingw482_32\bin\Qt5WebKitd.dll 0x9ff2e35
    2 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer*, WebCore::RenderLayerCompositor::OverlapMap*, WebCore::CompositingState&, bool&, bool&) C:\Qt\5.3\mingw482_32\bin\Qt5WebKitd.dll 0x8dafe1a
    3 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer*, WebCore::RenderLayerCompositor::OverlapMap*, WebCore::CompositingState&, bool&, bool&) C:\Qt\5.3\mingw482_32\bin\Qt5WebKitd.dll 0x8db05fd
    4 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer*, WebCore::RenderLayerCompositor::OverlapMap*, WebCore::CompositingState&, bool&, bool&) C:\Qt\5.3\mingw482_32\bin\Qt5WebKitd.dll 0x8db05fd
    5 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer*, WebCore::RenderLayerCompositor::OverlapMap*, WebCore::CompositingState&, bool&, bool&) C:\Qt\5.3\mingw482_32\bin\Qt5WebKitd.dll 0x8db05fd
    6 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer*, WebCore::RenderLayerCompositor::OverlapMap*, WebCore::CompositingState&, bool&, bool&) C:\Qt\5.3\mingw482_32\bin\Qt5WebKitd.dll 0x8db05fd
    7 WebCore::RenderLayerCompositor::updateCompositingLayers(WebCore::CompositingUpdateType, WebCore::RenderLayer*) C:\Qt\5.3\mingw482_32\bin\Qt5WebKitd.dll 0x8db0fe6
    8 WebCore::FrameView::updateCompositingLayersAfterLayout() C:\Qt\5.3\mingw482_32\bin\Qt5WebKitd.dll 0xa11ad27
    9 WebCore::FrameView::layout(bool) C:\Qt\5.3\mingw482_32\bin\Qt5WebKitd.dll 0xa126490
    10 WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive() C:\Qt\5.3\mingw482_32\bin\Qt5WebKitd.dll 0xa1286a9
    11 QWebFrameAdapter::renderRelativeCoords(QPainter*, int, QRegion const&) C:\Qt\5.3\mingw482_32\bin\Qt5WebKitd.dll 0x89b01d7
    12 QWebFrame::render 644 0xcf74e24
    13 QWebFrame::render 654 0xcf74eef
    14 QWebView::paintEvent 827 0xcf7f880
    15 QWidget::event 8117 0xdbdf3c6
    16 QWebView::event 731 0xcf7f670
    17 QApplicationPrivate::notify_helper 3522 0xdbae09f
    18 QApplication::notify 3487 0xdbadf23
    19 QCoreApplication::notifyInternal 935 0x6b929dde
    20 QCoreApplication::sendSpontaneousEvent 240 0xdef6ae1
    21 QWidgetPrivate::drawWidget 5157 0xdbd7e3e
    22 QWidgetBackingStore::doSync 1182 0xdbb443d
    23 QWidgetBackingStore::sync 1029 0xdbb371d
    24 QWidgetPrivate::syncBackingStore 1691 0xdbcfd9c
    @

    After launching my browser using the debugger, i get this error message :

    "L'inférieur a stoppé car il a reçu un signal du système d'exploitation. (inferior has stopped because he got a signal from OS)

    Nom du signal (signal name) : SIGSEGV
    Signification du signal (signal meaning) : Segmentation fault"

    I don't know what to do now, i'm using Qt v 5.3.1.

    Sorry for my english.



  • Usefull forum...



  • I'm having the same problem, and since there was no answer here, I'll post it in the discussion group.

    PS: have you ran your app in release mode or only debug mode? I just experience this in debug mode, to be more accurate when I use the keyboard on any form :)

    Best regards,
    Richard.



  • When you downloaded “Win32 OpenSSL v1.0.1i” on "this page":http://slproweb.com/products/Win32OpenSSL.html
    did you follow the instructions on the next row:

    "Visual C++ 2008 Redistributables":http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF
    1.7MB Installer
    Having problems with error messages when trying to run OpenSSL? This will likely fix the problem. Only works with Windows 2000 and later. Although there is a "newer version" of this installer, this is the correct version to install.



  • I don't think this is connected to OpenSSL whatsoever. This an ASSERT being hit in the WebCore rendering code, so it won't trigger / crash in Release mode and is there mainly for verifying that assumptions about the state the method was called in are correct when debugging the engine itself.

    There were a couple of fixes of asserts between 5.3 and 5.4, so it might be worth trying this with 5.4.0 beta once it has been released.


Log in to reply