Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
6.1.0
-
None
Description
With the introduction of Qt 6 we encountered a memory leak which seems to be caused by sending queued signals.
I attached an example project along with a heaptrack summary that points to some QByteArray reallocation when queued_activate for a signal is called.
The sample project is quite simple: A producer generates some signals in a thread. These signals are connected as Qt::QueuedConnections to a slot of an object in the main thread.
If I do something wrong in connection the thread please let me know
Btw, I made the same test with Qt 5.15 and the memory usage was stable.
Attachments
Issue Links
- relates to
-
QTBUG-93019 [REG 5.15-6.0] QList/QVector regressions
- Open
-
QTBUG-92912 Recursive QTimer:singleshot causes memory leak.
- Open
For Gerrit Dashboard: QTBUG-91801 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
344081,3 | QPostEventList: port to std::vector | dev | qt/qtbase | Status: NEW | -1 | 0 |
340105,1 | Fix QList::remove(0, ...) case | dev | qt/qtbase | Status: ABANDONED | -1 | 0 |
340586,15 | Resurrect data moves in QList | 6.1.0 | qt/qtbase | Status: MERGED | +2 | 0 |
341360,3 | Shift data left in QList::remove() when too much free space at begin | dev | qt/qtbase | Status: ABANDONED | -1 | 0 |
343627,1 | WIP: Test cyclic reinsertion into QList | dev | qt/qtbase | Status: ABANDONED | -2 | 0 |
344244,3 | Teach QList to readjust its free space | dev | qt/qtbase | Status: ABANDONED | -2 | 0 |
345606,5 | Resurrect data moves in QList | dev | qt/qtbase | Status: MERGED | +2 | 0 |
345609,2 | Resurrect data moves in QList | 6.1 | qt/qtbase | Status: MERGED | +2 | 0 |
345610,2 | Resurrect data moves in QList | 6.0 | qt/qtbase | Status: MERGED | +2 | 0 |