Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
6.6
-
None
-
Fedora 38, GCC 13.2.1 20230728 (Red Hat 13.2.1-1)
-
7c4e271fe (dev), 9962441bf (6.7), f0e4f50fd (6.6)
Description
When building KDE Discover with address sanitizers (-DECM_ENABLE_SANITIZERS=address) I cannot start the application any more. It always exits (not crashes) with exit code 1. Without ASAN it works fine.
Setting a breakpoint on _exit I get
#0 __interceptor__exit(int) (status=1) at ../../../../libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4464 #1 0x00007ffff4b64ff9 in QProcessPrivate::startDetached(long long*) (this=0x61700035e900, pid=0x7fffffffb3b0) at /home/nico/workspace/qt6/qtbase/src/corelib/io/qprocess_unix.cpp:1192 #2 0x00007ffff4b59ea1 in QProcess::startDetached(QString const&, QList<QString> const&, QString const&, long long*) (program=..., arguments=..., workingDirectory=..., pid=pid@entry=0x7fffffffb3b0) at /home/nico/workspace/qt6/qtbase/src/corelib/io/qprocess.cpp:2574 #3 0x00007ffff6190196 in KIO::Worker::createWorker(QString const&, QUrl const&, int&, QString&) (protocol=..., url=..., error=@0x7fffffffb494: 24800, error_text=...) at /home/nico/kde/src/kio/src/core/worker.cpp:400 #4 0x00007ffff613281b in KIO::ProtoQueue::createWorker(QString const&, KIO::SimpleJob*, QUrl const&) (this=this@entry=0x60c0009d1740, protocol=..., job=job@entry=0x603000f2f6e0, url=...) at /home/nico/kde/src/kio/src/core/scheduler.cpp:464 #5 0x00007ffff6137c3f in KIO::ProtoQueue::startAJob() (this=0x60c0009d1740) at /home/nico/kde/src/kio/src/core/scheduler.cpp:551 #6 0x00007ffff49b5fa3 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffffffb670, r=0x60c0009d1740, this=0x603000f63730) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:433 #7 doActivate<false>(QObject*, int, void**) (sender=0x60c0009d1758, signal_index=3, argv=0x7fffffffb670) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4021 #8 0x00007ffff49adcdf in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7ffff4e0c160 <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffb670) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4081 #9 0x00007ffff49c3b2a in QTimer::timeout(QTimer::QPrivateSignal) (this=<optimized out>, _t1=...) at /home/nico/workspace/qt6/qtbase/src/corelib/Core_autogen/include/moc_qtimer.cpp:272 #10 0x00007ffff49a686f in QObject::event(QEvent*) (this=0x60c0009d1758, e=0x7fffffffb7c0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:1459 #11 0x00007ffff6b7f981 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x60c0009d1758, e=0x7fffffffb7c0) at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:3295 #12 0x00007ffff4959b08 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x60c0009d1758, event=0x7fffffffb7c0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1119 #13 0x00007ffff4959c89 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1537 #14 0x00007ffff4aeeca1 in QTimerInfoList::activateTimers() (this=0x60e000027b00) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qtimerinfo_unix.cpp:507 #15 0x00007ffff4bf7cc4 in timerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:149 #16 0x00007ffff3e8a4fc in g_main_dispatch (context=0x60f000007930) at ../glib/gmain.c:3460 #17 g_main_context_dispatch (context=0x60f000007930) at ../glib/gmain.c:4200 #18 0x00007ffff3ee86b8 in g_main_context_iterate.isra.0 (context=0x60f000007930, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4276 #19 0x00007ffff3e87b83 in g_main_context_iteration (context=0x60f000007930, may_block=1) at ../glib/gmain.c:4343 #20 0x00007ffff4bf801c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x6030000596e0, flags=...) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:393 #21 0x00007ffff49656bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffba70, flags=..., flags@entry=...) at /home/nico/workspace/qt6/qtbase/src/corelib/global/qflags.h:34 #22 0x00007ffff49620c2 in QCoreApplication::exec() () at /home/nico/workspace/qt6/qtbase/src/corelib/global/qflags.h:74 #23 0x00007ffff51b04fc in QGuiApplication::exec() () at /home/nico/workspace/qt6/qtbase/src/gui/kernel/qguiapplication.cpp:1925 #24 0x00007ffff6b7f8f5 in QApplication::exec() () at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:2574 #25 0x000000000041f990 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/nico/kde/src/discover/discover/main.cpp:226
i.e. the exit is triggered by ::_exit(1) in qprocess_unix.cpp
This doesn't happen with the Qt5/Plasma 5 version of Discover.
Qt 6.6, qtbase 51129d65b931a0a5dd235f7df26a1fe9f421ad26
Attachments
Issue Links
- is duplicated by
-
QTBUG-119210 Linux/QML: Qt.openUrlExternally terminates process in Qt 6.6.0 (with address sanitizer)
-
- Closed
-
- resulted from
-
QTBUG-104493 Application performance drops if many threads are running while QProcess creates sub-processes on Unix
-
- Closed
-
For Gerrit Dashboard: QTBUG-117954 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
515740,5 | QProcess/Unix: detect ASan and TSan dynamically | dev | qt/qtbase | Status: MERGED | -1 | 0 |
530598,2 | QProcess/Unix: detect ASan and TSan dynamically | 6.7 | qt/qtbase | Status: MERGED | +2 | 0 |
530663,3 | QProcess/Unix: detect ASan and TSan dynamically | 6.6 | qt/qtbase | Status: MERGED | +2 | 0 |