[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.