Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.7
-
None
-
qt 5.7 git (1a78ef09b93b0a7)
32-bit x86 Linux, OpenSSL 1.0.2g
-
86632bd377e9809a6670ee069b45bfb59a07d0fa
Description
While running a QML application I got a crash with the following stack trace (I've clipped the relevant part since this is an infinite recursion):
#0 0x768a3512 in QSslSocketBackendPrivate::transmit() () from /usr/lib/libQt5Network.so.5 #1 0x7689607e in QSslSocket::flush() () from /usr/lib/libQt5Network.so.5 #2 0x76899bd1 in QSslSocket::close() () from /usr/lib/libQt5Network.so.5 #3 0x76844ccc in QHttpNetworkConnectionChannel::close() () from /usr/lib/libQt5Network.so.5 #4 0x76840cba in QHttpNetworkConnectionPrivate::shouldEmitChannelError(QAbstractSocket*) () from /usr/lib/libQt5Network.so.5 #5 0x76846a91 in QHttpNetworkConnectionChannel::_q_error(QAbstractSocket::SocketError) () from /usr/lib/libQt5Network.so.5 #6 0x76626eaa in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5 #7 0x766279cc in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQt5Core.so.5 #8 0x76884116 in QAbstractSocket::error(QAbstractSocket::SocketError) () from /usr/lib/libQt5Network.so.5 #9 0x76885315 in QAbstractSocketPrivate::setErrorAndEmit(QAbstractSocket::SocketError, QString const&) () from /usr/lib/libQt5Network.so.5 #10 0x768a3a72 in QSslSocketBackendPrivate::transmit() () from /usr/lib/libQt5Network.so.5 #11 0x7689607e in QSslSocket::flush() () from /usr/lib/libQt5Network.so.5 #12 0x76899bd1 in QSslSocket::close() () from /usr/lib/libQt5Network.so.5 [...] #17320 0x768a3a72 in QSslSocketBackendPrivate::transmit() () from /usr/lib/libQt5Network.so.5 #17321 0x7689607e in QSslSocket::flush() () from /usr/lib/libQt5Network.so.5 #17322 0x76899bd1 in QSslSocket::close() () from /usr/lib/libQt5Network.so.5 #17323 0x76844ccc in QHttpNetworkConnectionChannel::close() () from /usr/lib/libQt5Network.so.5 #17324 0x76840cba in QHttpNetworkConnectionPrivate::shouldEmitChannelError(QAbstractSocket*) () from /usr/lib/libQt5Network.so.5 #17325 0x76846a91 in QHttpNetworkConnectionChannel::_q_error(QAbstractSocket::SocketError) () from /usr/lib/libQt5Network.so.5 #17326 0x76626eaa in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5 #17327 0x766279cc in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQt5Core.so.5 #17328 0x76884116 in QAbstractSocket::error(QAbstractSocket::SocketError) () from /usr/lib/libQt5Network.so.5 #17329 0x76885315 in QAbstractSocketPrivate::setErrorAndEmit(QAbstractSocket::SocketError, QString const&) () from /usr/lib/libQt5Network.so.5 #17330 0x768a3a72 in QSslSocketBackendPrivate::transmit() () from /usr/lib/libQt5Network.so.5 #17331 0x7689607e in QSslSocket::flush() () from /usr/lib/libQt5Network.so.5 #17332 0x76899bd1 in QSslSocket::close() () from /usr/lib/libQt5Network.so.5 #17333 0x76844ccc in QHttpNetworkConnectionChannel::close() () from /usr/lib/libQt5Network.so.5 #17334 0x76840cba in QHttpNetworkConnectionPrivate::shouldEmitChannelError(QAbstractSocket*) () from /usr/lib/libQt5Network.so.5 #17335 0x76846a91 in QHttpNetworkConnectionChannel::_q_error(QAbstractSocket::SocketError) () from /usr/lib/libQt5Network.so.5 #17336 0x76626eaa in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5 #17337 0x766279cc in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQt5Core.so.5 #17338 0x76884116 in QAbstractSocket::error(QAbstractSocket::SocketError) () from /usr/lib/libQt5Network.so.5 #17339 0x76885315 in QAbstractSocketPrivate::setErrorAndEmit(QAbstractSocket::SocketError, QString const&) () from /usr/lib/libQt5Network.so.5 #17340 0x768a3a72 in QSslSocketBackendPrivate::transmit() () from /usr/lib/libQt5Network.so.5 #17341 0x7689607e in QSslSocket::flush() () from /usr/lib/libQt5Network.so.5 #17342 0x76899bd1 in QSslSocket::close() () from /usr/lib/libQt5Network.so.5 #17343 0x76844ccc in QHttpNetworkConnectionChannel::close() () from /usr/lib/libQt5Network.so.5 #17344 0x76840cba in QHttpNetworkConnectionPrivate::shouldEmitChannelError(QAbstractSocket*) () from /usr/lib/libQt5Network.so.5 #17345 0x76846a91 in QHttpNetworkConnectionChannel::_q_error(QAbstractSocket::SocketError) () from /usr/lib/libQt5Network.so.5 #17346 0x76626eaa in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5 #17347 0x766279cc in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQt5Core.so.5 #17348 0x76884116 in QAbstractSocket::error(QAbstractSocket::SocketError) () from /usr/lib/libQt5Network.so.5 #17349 0x76885315 in QAbstractSocketPrivate::setErrorAndEmit(QAbstractSocket::SocketError, QString const&) () from /usr/lib/libQt5Network.so.5 #17350 0x768a3a72 in QSslSocketBackendPrivate::transmit() () from /usr/lib/libQt5Network.so.5 #17351 0x7689607e in QSslSocket::flush() () from /usr/lib/libQt5Network.so.5 #17352 0x768964aa in QSslSocketPrivate::_q_flushWriteBuffer() () from /usr/lib/libQt5Network.so.5 #17353 0x7662479b in QMetaCallEvent::placeMetaCall(QObject*) () from /usr/lib/libQt5Core.so.5 #17354 0x76628979 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5 #17355 0x765f67b4 in QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5 #17356 0x765f6845 in QCoreApplication::notify(QObject*, QEvent*) [clone .localalias.90] () from /usr/lib/libQt5Core.so.5 #17357 0x76e57047 in QGuiApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Gui.so.5 #17358 0x765f69a9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5 #17359 0x765fa29b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5 #17360 0x765fa8e4 in QCoreApplication::sendPostedEvents(QObject*, int) () from /usr/lib/libQt5Core.so.5 #17361 0x76653c7f in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib/libQt5Core.so.5 #17362 0x758ac172 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #17363 0x758ac3c9 in g_main_context_iterate.isra () from /usr/lib/libglib-2.0.so.0 #17364 0x758ac480 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #17365 0x76654158 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5 #17366 0x765f3aea in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5 #17367 0x765f453c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5 #17368 0x763f9a67 in QThread::exec() () from /usr/lib/libQt5Core.so.5 #17369 0x763f9b4c in QThread::run() () from /usr/lib/libQt5Core.so.5 #17370 0x764002a8 in QThreadPrivate::start(void*) () from /usr/lib/libQt5Core.so.5 #17371 0x762cc3d2 in start_thread () from /usr/lib/libpthread.so.0 #17372 0x75fea7ee in clone () from /usr/lib/libc.so.6
I'm not sure how to reproduce it, is the stack trace itself enough to understand this issue ? Adding a guard in QSslSocket::flush to avoid recursion could work but I'm not sure this is the best thing to do.
Attachments
Issue Links
- is duplicated by
-
QTBUG-68089 Stack overflow on SSL error
-
- Closed
-
- resulted in
-
QTBUG-58303 The MapViewer example stops loading tiles after a short while
-
- Open
-