Comment 6 for bug 1617180

Revision history for this message
Alberto Mardegan (mardy) wrote :

Thanks for the logs.

I quickly investigated the issue, and the leaks from the functional_tests (that is, from the client library) are happening because the tests don't iterate the main loop, and therefore some cleanup methods which were queued in the main loop are never executed. I'll fix that when convenient (the bug is in the tests, so your app should not be affected).

When running the tst_daemon, I get the same leaks you reported, plus this error, near the beginning of the tests:

==6662== Syscall param pselect6(sig) points to unaddressable byte(s)
==6662== at 0x6011FCC: pselect (pselect.c:69)
==6662== by 0x532CBD9: qt_safe_select(int, fd_set*, fd_set*, fd_set*, timespec const*) (qcore_unix.cpp:86)
==6662== by 0x532CD87: qt_select_msecs(int, fd_set*, fd_set*, int) (qcore_unix.cpp:113)
==6662== by 0x526F254: QProcessPrivate::waitForFinished(int) (qprocess_unix.cpp:899)
==6662== by 0x520E3DA: QProcess::waitForFinished(int) (qprocess.cpp:1876)
==6662== by 0x5771255: QtDBusTest::SuicidalProcess::~SuicidalProcess() (in /usr/lib/x86_64-linux-gnu/libqtdbustest.so.1.0.0)
==6662== by 0x576EF68: QtDBusTest::QProcessDBusService::~QProcessDBusService() (in /usr/lib/x86_64-linux-gnu/libqtdbustest.so.1.0.0)
==6662== by 0x576EFC8: QtDBusTest::QProcessDBusService::~QProcessDBusService() (in /usr/lib/x86_64-linux-gnu/libqtdbustest.so.1.0.0)
==6662== by 0x576D0F8: ??? (in /usr/lib/x86_64-linux-gnu/libqtdbustest.so.1.0.0)
==6662== by 0x576E2B4: QtDBusTest::DBusTestRunner::~DBusTestRunner() (in /usr/lib/x86_64-linux-gnu/libqtdbustest.so.1.0.0)
==6662== by 0x12F523: ~DBusService (functional_tests.cpp:176)
==6662== by 0x12F523: DBusService::~DBusService() (functional_tests.cpp:176)
==6662== by 0x52E638D: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:2211)
==6662== Address 0x802001670 is 0 bytes inside a block of size 32 in arena "core"
==6662==

Did you get it as well? Anyway, the leaks reported in this test are not that important, given that they do not refer to the daemon library (which is executed within another process) but to the tests themselves.