On Tue Jun 12, 2018 at 08:33:11PM +0200, Rafael Sadowski wrote:
> Looks like x11/qt5/qtwebkit is broken. I'm sure all consumers are
> affected. backtraces below:
>
> digikam:
>
> Thread 1 received signal SIGTRAP, Trace/breakpoint trap.
> 0x0000079d971c05fb in cti_vm_throw () from /usr/local/lib/libQt5WebKit.so.2.1
> (gdb) bt
> #0 0x0000079d971c05fb in cti_vm_throw () from
> /usr/local/lib/libQt5WebKit.so.2.1
> #1 0x0000079d971525e7 in JSC::Interpreter::execute(JSC::ProgramExecutable*,
> JSC::ExecState*, JSC::JSObject*) () from /usr/local/lib/libQt5WebKit.so.2.1
> #2 0x0000079d9726b52e in JSC::evaluate(JSC::ExecState*, JSC::SourceCode
> const&, JSC::JSValue, JSC::JSValue*) () from
> /usr/local/lib/libQt5WebKit.so.2.1
> #3 0x0000079d95f83b7d in
> WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&,
> WebCore::DOMWrapperWorld*) () from /usr/local/lib/libQt5WebKit.so.2.1
> #4 0x0000079d95f83e06 in
> WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&) () from
> /usr/local/lib/libQt5WebKit.so.2.1
> #5 0x0000079d96f95511 in
> WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&) ()
> from /usr/local/lib/libQt5WebKit.so.2.1
> #6 0x0000079d9605e92f in
> WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent(WebCore::PendingScript&)
> () from /usr/local/lib/libQt5WebKit.so.2.1
> #7 0x0000079d9605e7e4 in
> WebCore::HTMLScriptRunner::executeParsingBlockingScript() () from
> /usr/local/lib/libQt5WebKit.so.2.1
> #8 0x0000079d9605f10b in
> WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad(WebCore::CachedResource*)
> () from /usr/local/lib/libQt5WebKit.so.2.1
> #9 0x0000079d9605370f in
> WebCore::HTMLDocumentParser::notifyFinished(WebCore::CachedResource*) () from
> /usr/local/lib/libQt5WebKit.so.2.1
> #10 0x0000079d960a2453 in WebCore::CachedResource::checkNotify() () from
> /usr/local/lib/libQt5WebKit.so.2.1
> #11 0x0000079d960f10f9 in
> WebCore::SubresourceLoader::didFinishLoading(double) () from
> /usr/local/lib/libQt5WebKit.so.2.1
> #12 0x0000079d9630d2fa in WebCore::QNetworkReplyHandler::finish() () from
> /usr/local/lib/libQt5WebKit.so.2.1
> #13 0x0000079d9630bb0a in WebCore::QNetworkReplyHandlerCallQueue::flush() ()
> from /usr/local/lib/libQt5WebKit.so.2.1
> #14 0x0000079d9630f40a in
> WebCore::QNetworkReplyWrapper::qt_static_metacall(QObject*,
> QMetaObject::Call, int, void**) () from /usr/local/lib/libQt5WebKit.so.2.1
> #15 0x0000079dbc057572 in QMetaObject::activate(QObject*, int, int, void**)
> () from /usr/local/lib/libQt5Core.so.2.2
> #16 0x0000079d3fbe7dea in QNetworkReply::qt_static_metacall(QObject*,
> QMetaObject::Call, int, void**) () from /usr/local/lib/libQt5Network.so.2.2
> #17 0x0000079dbc04f952 in QObject::event(QEvent*) () from
> /usr/local/lib/libQt5Core.so.2.2
> #18 0x0000079ddfef80dc in QApplicationPrivate::notify_helper(QObject*,
> QEvent*) () from /usr/local/lib/libQt5Widgets.so.2.2
> #19 0x0000079ddfef96d9 in QApplication::notify(QObject*, QEvent*) () from
> /usr/local/lib/libQt5Widgets.so.2.2
> #20 0x0000079dbc0200ba in QCoreApplication::notifyInternal2(QObject*,
> QEvent*) () from /usr/local/lib/libQt5Core.so.2.2
> #21 0x0000079dbc0211c7 in QCoreApplicationPrivate::sendPostedEvents(QObject*,
> int, QThreadData*) () from /usr/local/lib/libQt5Core.so.2.2
> #22 0x0000079dbc07e987 in postEventSourceDispatch(_GSource*, int (*)(void*),
> void*) () from /usr/local/lib/libQt5Core.so.2.2
> #23 0x0000079daff7e889 in g_main_dispatch (context=<optimized out>) at
> gmain.c:3177
> #24 g_main_context_dispatch (context=<optimized out>) at gmain.c:3830
> #25 0x0000079daff7ec93 in g_main_context_iterate (context=<optimized out>,
> block=<optimized out>, dispatch=<optimized out>, self=<optimized out>) at
> gmain.c:3903
> #26 0x0000079daff7ed73 in g_main_context_iteration (context=0x79d7b329e00,
> may_block=0) at gmain.c:3964
> #27 0x0000079dbc07e1cb in
> QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
> from /usr/local/lib/libQt5Core.so.2.2
> #28 0x0000079dbc020766 in
> QCoreApplication::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
> from /usr/local/lib/libQt5Core.so.2.2
> #29 0x0000079d993448b7 in Digikam::DSplashScreen::setMessage(QString const&)
> () from /usr/local/lib/libdigikamcore.so.1.0
> #30 0x0000079dd4cd1c04 in Digikam::DigikamApp::setupActions() () from
> /usr/local/lib/libdigikamgui.so.1.0
> #31 0x0000079dd4cd57b7 in Digikam::DigikamApp::DigikamApp() () from
> /usr/local/lib/libdigikamgui.so.1.0
> #32 0x0000079b29902fc0 in main ()
>
> otter-browser:
>
> Thread 1 received signal SIGTRAP, Trace/breakpoint trap.
> 0x00001f261430f4ad in cti_op_construct_NotJSConstruct () from
> /usr/local/lib/qt5/./libQt5WebKit.so.2.1
> (gdb) bt
> #0 0x00001f261430f4ad in cti_op_construct_NotJSConstruct () from
> /usr/local/lib/qt5/./libQt5WebKit.so.2.1
> #1 0x00001f26142a85e7 in JSC::Interpreter::execute(JSC::ProgramExecutable*,
> JSC::ExecState*, JSC::JSObject*) () from
> /usr/local/lib/qt5/./libQt5WebKit.so.2.1
> #2 0x00001f26143c152e in JSC::evaluate(JSC::ExecState*, JSC::SourceCode
> const&, JSC::JSValue, JSC::JSValue*) () from
> /usr/local/lib/qt5/./libQt5WebKit.so.2.1
> #3 0x00001f26130d9b7d in
> WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&,
> WebCore::DOMWrapperWorld*) () from /usr/local/lib/qt5/./libQt5WebKit.so.2.1
> #4 0x00001f26130d9e06 in
> WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&) () from
> /usr/local/lib/qt5/./libQt5WebKit.so.2.1
> #5 0x00001f26140eb511 in
> WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&) ()
> from /usr/local/lib/qt5/./libQt5WebKit.so.2.1
> #6 0x00001f26131b492f in
> WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent(WebCore::PendingScript&)
> () from /usr/local/lib/qt5/./libQt5WebKit.so.2.1
> #7 0x00001f26131b47e4 in
> WebCore::HTMLScriptRunner::executeParsingBlockingScript() () from
> /usr/local/lib/qt5/./libQt5WebKit.so.2.1
> #8 0x00001f26131b510b in
> WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad(WebCore::CachedResource*)
> () from /usr/local/lib/qt5/./libQt5WebKit.so.2.1
> #9 0x00001f26131a970f in
> WebCore::HTMLDocumentParser::notifyFinished(WebCore::CachedResource*) () from
> /usr/local/lib/qt5/./libQt5WebKit.so.2.1
> #10 0x00001f26131f8453 in WebCore::CachedResource::checkNotify() () from
> /usr/local/lib/qt5/./libQt5WebKit.so.2.1
> #11 0x00001f26132470f9 in
> WebCore::SubresourceLoader::didFinishLoading(double) () from
> /usr/local/lib/qt5/./libQt5WebKit.so.2.1
> #12 0x00001f26134632fa in WebCore::QNetworkReplyHandler::finish() () from
> /usr/local/lib/qt5/./libQt5WebKit.so.2.1
> #13 0x00001f2613461b0a in WebCore::QNetworkReplyHandlerCallQueue::flush() ()
> from /usr/local/lib/qt5/./libQt5WebKit.so.2.1
> #14 0x00001f261346540a in
> WebCore::QNetworkReplyWrapper::qt_static_metacall(QObject*,
> QMetaObject::Call, int, void**) () from
> /usr/local/lib/qt5/./libQt5WebKit.so.2.1
> #15 0x00001f268a49a572 in QMetaObject::activate(QObject*, int, int, void**)
> () from /usr/local/lib/qt5/./libQt5Core.so.2.2
> #16 0x00001f26c0a44e7f in QNetworkReplyHttpImplPrivate::finished() () from
> /usr/local/lib/qt5/./libQt5Network.so.2.2
> #17 0x00001f26c0b0fcf7 in QNetworkReplyHttpImpl::qt_static_metacall(QObject*,
> QMetaObject::Call, int, void**) () from
> /usr/local/lib/qt5/./libQt5Network.so.2.2
> #18 0x00001f268a492952 in QObject::event(QEvent*) () from
> /usr/local/lib/qt5/./libQt5Core.so.2.2
> #19 0x00001f263afec0dc in QApplicationPrivate::notify_helper(QObject*,
> QEvent*) () from /usr/local/lib/qt5/./libQt5Widgets.so.2.2
> #20 0x00001f263afed6d9 in QApplication::notify(QObject*, QEvent*) () from
> /usr/local/lib/qt5/./libQt5Widgets.so.2.2
> #21 0x00001f268a4630ba in QCoreApplication::notifyInternal2(QObject*,
> QEvent*) () from /usr/local/lib/qt5/./libQt5Core.so.2.2
> #22 0x00001f268a4641c7 in QCoreApplicationPrivate::sendPostedEvents(QObject*,
> int, QThreadData*) () from /usr/local/lib/qt5/./libQt5Core.so.2.2
> #23 0x00001f268a4c1987 in postEventSourceDispatch(_GSource*, int (*)(void*),
> void*) () from /usr/local/lib/qt5/./libQt5Core.so.2.2
> #24 0x00001f2618cc8889 in g_main_dispatch (context=<optimized out>) at
> gmain.c:3177
> #25 g_main_context_dispatch (context=<optimized out>) at gmain.c:3830
> #26 0x00001f2618cc8c93 in g_main_context_iterate (context=<optimized out>,
> block=<optimized out>, dispatch=<optimized out>, self=<optimized out>) at
> gmain.c:3903
> #27 0x00001f2618cc8d73 in g_main_context_iteration (context=0x1f261587e900,
> may_block=1) at gmain.c:3964
> #28 0x00001f268a4c11cb in
> QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
> from /usr/local/lib/qt5/./libQt5Core.so.2.2
> #29 0x00001f268a45e47e in
> QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
> /usr/local/lib/qt5/./libQt5Core.so.2.2
> #30 0x00001f268a4639f4 in QCoreApplication::exec() () from
> /usr/local/lib/qt5/./libQt5Core.so.2.2
> #31 0x00001f240cf0b4b9 in main ()
>
Switch off retguard in qtwebkit fix the crashes above.
Please find below a diff to disbale retguard for qtwebkit and respect
CC/CXX in Qt.
ok?
Index: qt5.port.mk
===================================================================
RCS file: /cvs/ports/x11/qt5/qt5.port.mk,v
retrieving revision 1.20
diff -u -p -u -p -r1.20 qt5.port.mk
--- qt5.port.mk 25 Jan 2018 15:02:25 -0000 1.20
+++ qt5.port.mk 13 Jun 2018 14:56:11 -0000
@@ -121,7 +121,7 @@ MODQT5_USE_CXX11 ?= Yes
COMPILER ?= base-clang ports-clang ports-gcc
ONLY_FOR_ARCHS ?= ${CXX11_ARCHS}
# useful?
-_MODQT5_SETUP += CC=cc CXX=c++
+_MODQT5_SETUP += CC=${CC} CXX=${CXX}
.endif
.include "Makefile.version"
Index: qtwebkit/Makefile
===================================================================
RCS file: /cvs/ports/x11/qt5/qtwebkit/Makefile,v
retrieving revision 1.10
diff -u -p -u -p -r1.10 Makefile
--- qtwebkit/Makefile 29 Mar 2018 20:04:42 -0000 1.10
+++ qtwebkit/Makefile 13 Jun 2018 14:56:11 -0000
@@ -1,7 +1,7 @@
# $OpenBSD: Makefile,v 1.10 2018/03/29 20:04:42 rsadowski Exp $
QT5NAME = QtWebkit
-REVISION = 5
+REVISION = 6
COMMENT = old Webkit integration framework for Qt
USE_WXNEEDED = Yes
DPB_PROPERTIES = parallel
@@ -26,6 +26,8 @@ MASTER_SITES = https://download.qt.io/c
MODULES = perl lang/python lang/ruby
MODPY_RUNDEP = No
MODRUBY_RUNDEP = No
+
+CXXFLAGS += -fno-ret-protector
BUILD_DEPENDS = devel/bison \
devel/gperf \