Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.6.0, 5.6.1, 5.7.0
-
None
Description
Since upgrading to 5.6, various applications segfault here on exit:
#0 0x00007ffff1deaab7 in QObject::disconnect (sender=0x7fff8813ff80, signal=signal@entry=0x0, receiver=receiver@entry=0x7fff84010e50, method=method@entry=0x0) at kernel/qobject.cpp:2949 #1 0x00007fffdba4af78 in QObject::disconnect (member=0x0, receiver=0x7fff84010e50, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:361 #2 QDBusConnectionPrivate::closeConnection (this=this@entry=0x7fff84010e50) at qdbusintegrator.cpp:1126 #3 0x00007fffdba3bb36 in QDBusConnectionManager::run (this=0x7fffdbcadd00 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:191 #4 0x00007ffff1be6de8 in QThreadPrivate::start (arg=0x7fffdbcadd00 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:340 #5 0x00007ffff76f5424 in start_thread () from /usr/lib/libpthread.so.0 #6 0x00007ffff7434cbd in clone () from /usr/lib/libc.so.6
note the "member=0x0" - thread apply all bt full output
Unfortunately the only way to always reproduce this is this script using PyQt and QtWebkit...
import sys from PyQt5.QtCore import QUrl, QTimer from PyQt5.QtWidgets import QApplication from PyQt5.QtWebKitWidgets import QWebView app = QApplication(sys.argv) wv = QWebView() wv.load(QUrl('http://www.riverbankcomputing.com/')) wv.show() QTimer.singleShot(1000, app.quit) app.exec_()
While I can't reproduce it with a minimal C++ app using QtWebKit, I've seen bugreports for many projects which are unrelated to PyQt/QtWebKit:
- Fedora crash summary
- Automatic Fedora reports in kf5-kinit, lxqt-panel, kde-connect, calibre
- musescore bug with some initial debugging
This is why I think this is a general Qt issue and not a PyQt one.
Attachments
Issue Links
- depends on
-
QTBUG-56228 Bearer plugins can get unloaded while the bearer thread is still running
- Closed
- replaces
-
QTBUG-54408 Segmentation fault in QDBusConnectionPrivate::closeConnection()
- Closed
For Gerrit Dashboard: QTBUG-52988 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
157308,4 | Disconnect signals from each QObject only once in QDBusConnectionPrivate | 5.6 | qt/qtbase | Status: MERGED | +2 | 0 |
172014,2 | Stop unloading plugins in QPluginLoader and QFactoryLoader | 5.6 | qt/qtbase | Status: ABANDONED | -2 | 0 |
172173,3 | Make the bearer QFactoryLoader a member variable, not a static | 5.6 | qt/qtbase | Status: ABANDONED | +2 | 0 |
179401,2 | Make the bearer QFactoryLoader a member variable, not a static | 5.8 | qt/qtbase | Status: MERGED | +2 | 0 |