[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
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.