Possible infinite recursion during toolbar layout on macOS
-
Recently started getting reports from a Qt 5.6 application I help maintain about performance/responsiveness issues on MacOS. I've advised to get samples (via Activity Monitor / Sample Process), I see what looks like cycle in the hierarchy. I wanted to write to ask here to see if that is indeed a reasonable read of the involved frames:
... everything above here is just normal runloop source notification stuff... + 2383 QLayout::widgetEvent(QEvent*) (in QtWidgets) + 81 [0x10a675521] + 2383 QLayout::activate() (in QtWidgets) + 106 [0x10a6755ba] + 2383 QLayout::activateRecursiveHelper(QLayoutItem*) (in QtWidgets) + 86 [0x10a676776] + 2383 QMainWindowLayout::itemAt(int) const (in QtWidgets) + 40 [0x10a79ea28] + 2383 QToolBarAreaLayout::itemAt(int*, int) const (in QtWidgets) + 380,384,... [0x10a82f85c,0x10a82f860,...]
The numbers 2383 are the sample count, 1ms between samples. From my research so far,
activateRecursiveHelper
appears to exist to help avoid blowing the stack for deep hierarchies.Does any one have any advice for digging into a matter such as this?
-
Hi and welcome to devnet,
What version of Qt exactly ?
On what version of macOS ? -
Qt 5.6.1 is really old. Can you update at least the latest version of that series ?
If possible, Qt 5.14 would be better but if you want to stay on LTS then the 5.12 series.