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

Regression in QProcess in Qt 5.15: cannot forkfd_wait on children using FFD_USE_FORK

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • 5.15.0 Beta3
    • 5.15.0 Alpha
    • Core: I/O
    • None
    • Linux/Wayland
    • ba5e2ce49a43c7d68e2ffa57b9e7f8d5d7fafe2f (qt/qtbase/5.15)

    Description

      Some applications give me random results when using QProcess.

      It can be sometimes reproduced by tst_qprocess. Here's an output by valgrind, maybe it is of help.

      $ valgrind ./tst_qprocess simpleStart
      ==59383== Memcheck, a memory error detector
      ==59383== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
      ==59383== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
      ==59383== Command: ./tst_qprocess simpleStart
      ==59383== 
      ********* Start testing of tst_QProcess *********
      Config: Using QtTest library 5.15.0, Qt 5.15.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 9.2.1 20200130)
      PASS   : tst_QProcess::initTestCase()
      ==59383== Syscall param waitid(infop) points to unaddressable byte(s)
      ==59383==    at 0x5480F8D: syscall (in /usr/lib/libc-2.31.so)
      ==59383==    by 0x4CA4DEE: sys_waitid (forkfd_linux.c:61)
      ==59383==    by 0x4CA4DEE: detect_clone_pidfd_support (forkfd_linux.c:121)
      ==59383==    by 0x4CA4DEE: system_forkfd (forkfd_linux.c:137)
      ==59383==    by 0x4CA4DEE: forkfd (forkfd.c:623)
      ==59383==    by 0x4C87AD9: QProcessPrivate::startProcess() (qprocess_unix.cpp:460)
      ==59383==    by 0x4C82A77: QProcessPrivate::start(QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2246)
      ==59383==    by 0x4C82C38: QProcess::start(QString const&, QStringList const&, QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2094)
      ==59383==    by 0x4C82E10: QProcess::start(QString const&, QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2340)
      ==59383==    by 0x1183EF: tst_QProcess::simpleStart() (tst_qprocess.cpp:265)
      ==59383==    by 0x4D15C55: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:2294)
      ==59383==    by 0x48622D2: invoke (qmetaobject.h:122)
      ==59383==    by 0x48622D2: QTest::TestMethods::invokeTestOnData(int) const (qtestcase.cpp:938)
      ==59383==    by 0x4862C8B: QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const (qtestcase.cpp:1166)
      ==59383==    by 0x48631F8: QTest::TestMethods::invokeTests(QObject*) const (qtestcase.cpp:1507)
      ==59383==    by 0x48636C0: QTest::qRun() (qtestcase.cpp:1934)
      ==59383==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
      ==59383== 
      ==59383== Conditional jump or move depends on uninitialised value(s)
      ==59383==    at 0x4C87AE3: QProcessPrivate::startProcess() (qprocess_unix.cpp:462)
      ==59383==    by 0x4C82A77: QProcessPrivate::start(QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2246)
      ==59383==    by 0x4C82C38: QProcess::start(QString const&, QStringList const&, QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2094)
      ==59383==    by 0x4C82E10: QProcess::start(QString const&, QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2340)
      ==59383==    by 0x1183EF: tst_QProcess::simpleStart() (tst_qprocess.cpp:265)
      ==59383==    by 0x4D15C55: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:2294)
      ==59383==    by 0x48622D2: invoke (qmetaobject.h:122)
      ==59383==    by 0x48622D2: QTest::TestMethods::invokeTestOnData(int) const (qtestcase.cpp:938)
      ==59383==    by 0x4862C8B: QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const (qtestcase.cpp:1166)
      ==59383==    by 0x48631F8: QTest::TestMethods::invokeTests(QObject*) const (qtestcase.cpp:1507)
      ==59383==    by 0x48636C0: QTest::qRun() (qtestcase.cpp:1934)
      ==59383==    by 0x4863A8B: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1842)
      ==59383==    by 0x1133E9: main (tst_qprocess.cpp:2683)
      ==59383== 
      ==59383== Conditional jump or move depends on uninitialised value(s)
      ==59383==    at 0x4C87E46: QProcessPrivate::startProcess() (qprocess_unix.cpp:477)
      ==59383==    by 0x4C82A77: QProcessPrivate::start(QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2246)
      ==59383==    by 0x4C82C38: QProcess::start(QString const&, QStringList const&, QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2094)
      ==59383==    by 0x4C82E10: QProcess::start(QString const&, QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2340)
      ==59383==    by 0x1183EF: tst_QProcess::simpleStart() (tst_qprocess.cpp:265)
      ==59383==    by 0x4D15C55: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:2294)
      ==59383==    by 0x48622D2: invoke (qmetaobject.h:122)
      ==59383==    by 0x48622D2: QTest::TestMethods::invokeTestOnData(int) const (qtestcase.cpp:938)
      ==59383==    by 0x4862C8B: QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const (qtestcase.cpp:1166)
      ==59383==    by 0x48631F8: QTest::TestMethods::invokeTests(QObject*) const (qtestcase.cpp:1507)
      ==59383==    by 0x48636C0: QTest::qRun() (qtestcase.cpp:1934)
      ==59383==    by 0x4863A8B: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1842)
      ==59383==    by 0x1133E9: main (tst_qprocess.cpp:2683)
      ==59383== 
      ==59383== Conditional jump or move depends on uninitialised value(s)
      ==59383==    at 0x4C87B76: QProcessPrivate::startProcess() (qprocess_unix.cpp:490)
      ==59383==    by 0x4C82A77: QProcessPrivate::start(QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2246)
      ==59383==    by 0x4C82C38: QProcess::start(QString const&, QStringList const&, QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2094)
      ==59383==    by 0x4C82E10: QProcess::start(QString const&, QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2340)
      ==59383==    by 0x1183EF: tst_QProcess::simpleStart() (tst_qprocess.cpp:265)
      ==59383==    by 0x4D15C55: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:2294)
      ==59383==    by 0x48622D2: invoke (qmetaobject.h:122)
      ==59383==    by 0x48622D2: QTest::TestMethods::invokeTestOnData(int) const (qtestcase.cpp:938)
      ==59383==    by 0x4862C8B: QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const (qtestcase.cpp:1166)
      ==59383==    by 0x48631F8: QTest::TestMethods::invokeTests(QObject*) const (qtestcase.cpp:1507)
      ==59383==    by 0x48636C0: QTest::qRun() (qtestcase.cpp:1934)
      ==59383==    by 0x4863A8B: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1842)
      ==59383==    by 0x1133E9: main (tst_qprocess.cpp:2683)
      ==59383== 
      ==59383== Conditional jump or move depends on uninitialised value(s)
      ==59383==    at 0x4D3FE81: QSocketNotifier::QSocketNotifier(long long, QSocketNotifier::Type, QObject*) (qsocketnotifier.cpp:152)
      ==59383==    by 0x4C87C9E: QProcessPrivate::startProcess() (qprocess_unix.cpp:526)
      ==59383==    by 0x4C82A77: QProcessPrivate::start(QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2246)
      ==59383==    by 0x4C82C38: QProcess::start(QString const&, QStringList const&, QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2094)
      ==59383==    by 0x4C82E10: QProcess::start(QString const&, QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2340)
      ==59383==    by 0x1183EF: tst_QProcess::simpleStart() (tst_qprocess.cpp:265)
      ==59383==    by 0x4D15C55: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:2294)
      ==59383==    by 0x48622D2: invoke (qmetaobject.h:122)
      ==59383==    by 0x48622D2: QTest::TestMethods::invokeTestOnData(int) const (qtestcase.cpp:938)
      ==59383==    by 0x4862C8B: QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const (qtestcase.cpp:1166)
      ==59383==    by 0x48631F8: QTest::TestMethods::invokeTests(QObject*) const (qtestcase.cpp:1507)
      ==59383==    by 0x48636C0: QTest::qRun() (qtestcase.cpp:1934)
      ==59383==    by 0x4863A8B: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1842)
      ==59383== 
      ==59383== Conditional jump or move depends on uninitialised value(s)
      ==59383==    at 0x76F687C: ??? (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x76F6BCD: g_source_add_poll (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x4D5F248: QEventDispatcherGlib::registerSocketNotifier(QSocketNotifier*) (qeventdispatcher_glib.cpp:477)
      ==59383==    by 0x4D3FEA0: QSocketNotifier::QSocketNotifier(long long, QSocketNotifier::Type, QObject*) (qsocketnotifier.cpp:157)
      ==59383==    by 0x4C87C9E: QProcessPrivate::startProcess() (qprocess_unix.cpp:526)
      ==59383==    by 0x4C82A77: QProcessPrivate::start(QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2246)
      ==59383==    by 0x4C82C38: QProcess::start(QString const&, QStringList const&, QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2094)
      ==59383==    by 0x4C82E10: QProcess::start(QString const&, QFlags<QIODevice::OpenModeFlag>) (qprocess.cpp:2340)
      ==59383==    by 0x1183EF: tst_QProcess::simpleStart() (tst_qprocess.cpp:265)
      ==59383==    by 0x4D15C55: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:2294)
      ==59383==    by 0x48622D2: invoke (qmetaobject.h:122)
      ==59383==    by 0x48622D2: QTest::TestMethods::invokeTestOnData(int) const (qtestcase.cpp:938)
      ==59383==    by 0x4862C8B: QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const (qtestcase.cpp:1166)
      ==59383== 
      ==59383== Conditional jump or move depends on uninitialised value(s)
      ==59383==    at 0x76F3DDA: g_main_context_query (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x76FD09C: ??? (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x76FD1F0: g_main_context_iteration (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x4D5E7B0: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:423)
      ==59383==    by 0x4D07970: QCoreApplication::processEvents(QFlags<QEventLoop::ProcessEventsFlag>, int) (qcoreapplication.cpp:1314)
      ==59383==    by 0x4D5A43D: QTest::qWait(int) (qtestsupport_core.cpp:104)
      ==59383==    by 0x118936: tst_QProcess::simpleStart() (tst_qprocess.cpp:270)
      ==59383==    by 0x4D15C55: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:2294)
      ==59383==    by 0x48622D2: invoke (qmetaobject.h:122)
      ==59383==    by 0x48622D2: QTest::TestMethods::invokeTestOnData(int) const (qtestcase.cpp:938)
      ==59383==    by 0x4862C8B: QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const (qtestcase.cpp:1166)
      ==59383==    by 0x48631F8: QTest::TestMethods::invokeTests(QObject*) const (qtestcase.cpp:1507)
      ==59383==    by 0x48636C0: QTest::qRun() (qtestcase.cpp:1934)
      ==59383== 
      ==59383== Syscall param poll(ufds.fd) points to uninitialised byte(s)
      ==59383==    at 0x547BABF: poll (in /usr/lib/libc-2.31.so)
      ==59383==    by 0x76FD11F: ??? (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x76FD1F0: g_main_context_iteration (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x4D5E7B0: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:423)
      ==59383==    by 0x4D07970: QCoreApplication::processEvents(QFlags<QEventLoop::ProcessEventsFlag>, int) (qcoreapplication.cpp:1314)
      ==59383==    by 0x4D5A43D: QTest::qWait(int) (qtestsupport_core.cpp:104)
      ==59383==    by 0x118936: tst_QProcess::simpleStart() (tst_qprocess.cpp:270)
      ==59383==    by 0x4D15C55: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:2294)
      ==59383==    by 0x48622D2: invoke (qmetaobject.h:122)
      ==59383==    by 0x48622D2: QTest::TestMethods::invokeTestOnData(int) const (qtestcase.cpp:938)
      ==59383==    by 0x4862C8B: QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const (qtestcase.cpp:1166)
      ==59383==    by 0x48631F8: QTest::TestMethods::invokeTests(QObject*) const (qtestcase.cpp:1507)
      ==59383==    by 0x48636C0: QTest::qRun() (qtestcase.cpp:1934)
      ==59383==  Address 0x79e1638 is 24 bytes inside a block of size 32 alloc'd
      ==59383==    at 0x483977F: malloc (vg_replace_malloc.c:309)
      ==59383==    by 0x76F58D9: g_malloc (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x76FD196: ??? (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x76FD1F0: g_main_context_iteration (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x4D5E7B0: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:423)
      ==59383==    by 0x4D07970: QCoreApplication::processEvents(QFlags<QEventLoop::ProcessEventsFlag>, int) (qcoreapplication.cpp:1314)
      ==59383==    by 0x4D5A43D: QTest::qWait(int) (qtestsupport_core.cpp:104)
      ==59383==    by 0x118936: tst_QProcess::simpleStart() (tst_qprocess.cpp:270)
      ==59383==    by 0x4D15C55: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:2294)
      ==59383==    by 0x48622D2: invoke (qmetaobject.h:122)
      ==59383==    by 0x48622D2: QTest::TestMethods::invokeTestOnData(int) const (qtestcase.cpp:938)
      ==59383==    by 0x4862C8B: QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const (qtestcase.cpp:1166)
      ==59383==    by 0x48631F8: QTest::TestMethods::invokeTests(QObject*) const (qtestcase.cpp:1507)
      ==59383== 
      ==59383== Conditional jump or move depends on uninitialised value(s)
      ==59383==    at 0x76FB787: g_main_context_check (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x76FD0C7: ??? (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x76FD1F0: g_main_context_iteration (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x4D5E7B0: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:423)
      ==59383==    by 0x4D07970: QCoreApplication::processEvents(QFlags<QEventLoop::ProcessEventsFlag>, int) (qcoreapplication.cpp:1314)
      ==59383==    by 0x4D5A43D: QTest::qWait(int) (qtestsupport_core.cpp:104)
      ==59383==    by 0x118936: tst_QProcess::simpleStart() (tst_qprocess.cpp:270)
      ==59383==    by 0x4D15C55: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:2294)
      ==59383==    by 0x48622D2: invoke (qmetaobject.h:122)
      ==59383==    by 0x48622D2: QTest::TestMethods::invokeTestOnData(int) const (qtestcase.cpp:938)
      ==59383==    by 0x4862C8B: QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const (qtestcase.cpp:1166)
      ==59383==    by 0x48631F8: QTest::TestMethods::invokeTests(QObject*) const (qtestcase.cpp:1507)
      ==59383==    by 0x48636C0: QTest::qRun() (qtestcase.cpp:1934)
      ==59383== 
      ==59383== Conditional jump or move depends on uninitialised value(s)
      ==59383==    at 0x4C86932: QProcessPrivate::waitForDeadChild() (qprocess_unix.cpp:885)
      ==59383==    by 0x4C82409: QProcessPrivate::_q_processDied() (qprocess.cpp:1128)
      ==59383==    by 0x4C82741: QProcess::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_qprocess.cpp:216)
      ==59383==    by 0x4D3C68F: void doActivate<false>(QObject*, int, void**) (qobject.cpp:3870)
      ==59383==    by 0x4D3FDE0: QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) (moc_qsocketnotifier.cpp:141)
      ==59383==    by 0x4D40120: QSocketNotifier::event(QEvent*) (qsocketnotifier.cpp:271)
      ==59383==    by 0x4D0780E: doNotify (qcoreapplication.cpp:1151)
      ==59383==    by 0x4D0780E: notify (qcoreapplication.cpp:1137)
      ==59383==    by 0x4D0780E: QCoreApplication::notifyInternal2(QObject*, QEvent*) (qcoreapplication.cpp:1061)
      ==59383==    by 0x4D5F314: socketNotifierSourceDispatch(_GSource*, int (*)(void*), void*) (qeventdispatcher_glib.cpp:107)
      ==59383==    by 0x76FB39D: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x76FD1B0: ??? (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x76FD1F0: g_main_context_iteration (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x4D5E7B0: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:423)
      ==59383== 
      ==59383== Syscall param fcntl(fd) contains uninitialised byte(s)
      ==59383==    at 0x547C4B4: __fcntl64_nocancel_adjusted (in /usr/lib/libc-2.31.so)
      ==59383==    by 0x54779A7: fcntl (in /usr/lib/libc-2.31.so)
      ==59383==    by 0x502D61E: fcntl@GLIBC_2.2.5 (in /usr/lib/libpthread-2.31.so)
      ==59383==    by 0x4CA5530: system_forkfd_wait (forkfd_linux.c:169)
      ==59383==    by 0x4CA5530: forkfd_wait (forkfd.c:810)
      ==59383==    by 0x4C86959: QProcessPrivate::waitForDeadChild() (qprocess_unix.cpp:891)
      ==59383==    by 0x4C82409: QProcessPrivate::_q_processDied() (qprocess.cpp:1128)
      ==59383==    by 0x4C82741: QProcess::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_qprocess.cpp:216)
      ==59383==    by 0x4D3C68F: void doActivate<false>(QObject*, int, void**) (qobject.cpp:3870)
      ==59383==    by 0x4D3FDE0: QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) (moc_qsocketnotifier.cpp:141)
      ==59383==    by 0x4D40120: QSocketNotifier::event(QEvent*) (qsocketnotifier.cpp:271)
      ==59383==    by 0x4D0780E: doNotify (qcoreapplication.cpp:1151)
      ==59383==    by 0x4D0780E: notify (qcoreapplication.cpp:1137)
      ==59383==    by 0x4D0780E: QCoreApplication::notifyInternal2(QObject*, QEvent*) (qcoreapplication.cpp:1061)
      ==59383==    by 0x4D5F314: socketNotifierSourceDispatch(_GSource*, int (*)(void*), void*) (qeventdispatcher_glib.cpp:107)
      ==59383== 
      ==59383== Syscall param sys_waitid(pid) contains uninitialised byte(s)
      ==59383==    at 0x5480F8D: syscall (in /usr/lib/libc-2.31.so)
      ==59383==    by 0x4CA5568: sys_waitid (forkfd_linux.c:61)
      ==59383==    by 0x4CA5568: system_forkfd_wait (forkfd_linux.c:175)
      ==59383==    by 0x4CA5568: forkfd_wait (forkfd.c:810)
      ==59383==    by 0x4C86959: QProcessPrivate::waitForDeadChild() (qprocess_unix.cpp:891)
      ==59383==    by 0x4C82409: QProcessPrivate::_q_processDied() (qprocess.cpp:1128)
      ==59383==    by 0x4C82741: QProcess::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_qprocess.cpp:216)
      ==59383==    by 0x4D3C68F: void doActivate<false>(QObject*, int, void**) (qobject.cpp:3870)
      ==59383==    by 0x4D3FDE0: QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) (moc_qsocketnotifier.cpp:141)
      ==59383==    by 0x4D40120: QSocketNotifier::event(QEvent*) (qsocketnotifier.cpp:271)
      ==59383==    by 0x4D0780E: doNotify (qcoreapplication.cpp:1151)
      ==59383==    by 0x4D0780E: notify (qcoreapplication.cpp:1137)
      ==59383==    by 0x4D0780E: QCoreApplication::notifyInternal2(QObject*, QEvent*) (qcoreapplication.cpp:1061)
      ==59383==    by 0x4D5F314: socketNotifierSourceDispatch(_GSource*, int (*)(void*), void*) (qeventdispatcher_glib.cpp:107)
      ==59383==    by 0x76FB39D: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x76FD1B0: ??? (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383== 
      ==59383== Conditional jump or move depends on uninitialised value(s)
      ==59383==    at 0x4D3FF23: QSocketNotifier::setEnabled(bool) (qsocketnotifier.cpp:233)
      ==59383==    by 0x4D3FFB8: QSocketNotifier::~QSocketNotifier() (qsocketnotifier.cpp:166)
      ==59383==    by 0x4D3FFD8: QSocketNotifier::~QSocketNotifier() (qsocketnotifier.cpp:167)
      ==59383==    by 0x4C86985: QProcessPrivate::waitForDeadChild() (qprocess_unix.cpp:896)
      ==59383==    by 0x4C82409: QProcessPrivate::_q_processDied() (qprocess.cpp:1128)
      ==59383==    by 0x4C82741: QProcess::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_qprocess.cpp:216)
      ==59383==    by 0x4D3C68F: void doActivate<false>(QObject*, int, void**) (qobject.cpp:3870)
      ==59383==    by 0x4D3FDE0: QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) (moc_qsocketnotifier.cpp:141)
      ==59383==    by 0x4D40120: QSocketNotifier::event(QEvent*) (qsocketnotifier.cpp:271)
      ==59383==    by 0x4D0780E: doNotify (qcoreapplication.cpp:1151)
      ==59383==    by 0x4D0780E: notify (qcoreapplication.cpp:1137)
      ==59383==    by 0x4D0780E: QCoreApplication::notifyInternal2(QObject*, QEvent*) (qcoreapplication.cpp:1061)
      ==59383==    by 0x4D5F314: socketNotifierSourceDispatch(_GSource*, int (*)(void*), void*) (qeventdispatcher_glib.cpp:107)
      ==59383==    by 0x76FB39D: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383== 
      ==59383== Syscall param close(fd) contains uninitialised byte(s)
      ==59383==    at 0x502D7BB: close (in /usr/lib/libpthread-2.31.so)
      ==59383==    by 0x4C869AC: QProcessPrivate::waitForDeadChild() (qprocess_unix.cpp:899)
      ==59383==    by 0x4C82409: QProcessPrivate::_q_processDied() (qprocess.cpp:1128)
      ==59383==    by 0x4C82741: QProcess::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_qprocess.cpp:216)
      ==59383==    by 0x4D3C68F: void doActivate<false>(QObject*, int, void**) (qobject.cpp:3870)
      ==59383==    by 0x4D3FDE0: QSocketNotifier::activated(int, QSocketNotifier::QPrivateSignal) (moc_qsocketnotifier.cpp:141)
      ==59383==    by 0x4D40120: QSocketNotifier::event(QEvent*) (qsocketnotifier.cpp:271)
      ==59383==    by 0x4D0780E: doNotify (qcoreapplication.cpp:1151)
      ==59383==    by 0x4D0780E: notify (qcoreapplication.cpp:1137)
      ==59383==    by 0x4D0780E: QCoreApplication::notifyInternal2(QObject*, QEvent*) (qcoreapplication.cpp:1061)
      ==59383==    by 0x4D5F314: socketNotifierSourceDispatch(_GSource*, int (*)(void*), void*) (qeventdispatcher_glib.cpp:107)
      ==59383==    by 0x76FB39D: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x76FD1B0: ??? (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383==    by 0x76FD1F0: g_main_context_iteration (in /usr/lib/libglib-2.0.so.0.6200.4)
      ==59383== 
      PASS   : tst_QProcess::simpleStart()
      PASS   : tst_QProcess::cleanupTestCase()
      Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 243ms
      ********* Finished testing of tst_QProcess *********
      ==59383== 
      ==59383== HEAP SUMMARY:
      ==59383==     in use at exit: 19,504 bytes in 25 blocks
      ==59383==   total heap usage: 410 allocs, 385 frees, 390,658 bytes allocated
      ==59383== 
      ==59383== LEAK SUMMARY:
      ==59383==    definitely lost: 0 bytes in 0 blocks
      ==59383==    indirectly lost: 0 bytes in 0 blocks
      ==59383==      possibly lost: 0 bytes in 0 blocks
      ==59383==    still reachable: 19,504 bytes in 25 blocks
      ==59383==         suppressed: 0 bytes in 0 blocks
      ==59383== Rerun with --leak-check=full to see details of leaked memory
      ==59383== 
      ==59383== Use --track-origins=yes to see where uninitialised values come from
      ==59383== For lists of detected and suppressed errors, rerun with: -s
      ==59383== ERROR SUMMARY: 18 errors from 14 contexts (suppressed: 0 from 0)
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            Unassigned Unassigned
            apol Aleix Pol
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes