Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-117954

QProcess::startDetached quits application when running with ASAN

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P2: Important
    • 6.6.2, 6.7.0 Beta2, 6.8.0 FF
    • 6.6
    • Core: Other
    • 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

          For Gerrit Dashboard: QTBUG-117954
          # Subject Branch Project Status CR V

          Activity

            People

              thiago Thiago Macieira
              nicolasfella Nicolas Fella
              Votes:
              1 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes