LibGetFrame

LibGetFrame

716k Downloads

Stack overflow issue

Toludin opened this issue ยท 10 comments

commented

After doing dungeons for a while, I sometimes start generating the following error:

267x LibGetFrame-1.0\LibGetFrame-1.0-2.lua:77: UIParent:GetChildren(): Stack overflow
LibGetFrame-1.0\LibGetFrame-1.0-2.lua:77: in function <LibGetFrame-1.0\LibGetFrame-1.0.lua:72>
LibGetFrame-1.0\LibGetFrame-1.0-2.lua:121: in function <LibGetFrame-1.0\LibGetFrame-1.0.lua:96>
LibGetFrame-1.0\LibGetFrame-1.0-2.lua:180: in function GetFrame' [string "--[[ Error in 'Scan Events' ]] return funct..."]:155: in function <[string "--[[ Error in 'Scan Events' ]] return funct..."]:1> [C]: in function xpcall'
WeakAuras\GenericTrigger.lua:517: in function <WeakAuras\GenericTrigger.lua:511>
WeakAuras\GenericTrigger.lua:637: in function ScanEventsInternal' WeakAuras\GenericTrigger.lua:624: in function ScanEvents'
WeakAuras\GenericTrigger.lua:686: in function <WeakAuras\GenericTrigger.lua:677>

Locals:
InCombatSkipped

This was happening before LibGetFrame, too (back when it was just part of the WA).

I use ElvUI frames, if that matters.

commented

I got the same issue:
1005x LibGetFrame-1.0\LibGetFrame-1.0-2.lua:77: UIParent:GetChildren(): Stack overflow
LibGetFrame-1.0\LibGetFrame-1.0-2.lua:77: in function <LibGetFrame-1.0\LibGetFrame-1.0.lua:72>
LibGetFrame-1.0\LibGetFrame-1.0-2.lua:121: in function <LibGetFrame-1.0\LibGetFrame-1.0.lua:96>
LibGetFrame-1.0\LibGetFrame-1.0-2.lua:180: in function GetFrame' [string "--[[ Error in 'Scan Events' ]] return funct..."]:155: in function <[string "--[[ Error in 'Scan Events' ]] return funct..."]:1> [C]: in function xpcall'
WeakAuras\GenericTrigger.lua:517: in function <WeakAuras\GenericTrigger.lua:511>
WeakAuras\GenericTrigger.lua:637: in function ScanEventsInternal' WeakAuras\GenericTrigger.lua:624: in function ScanEvents'
WeakAuras\GenericTrigger.lua:686: in function <WeakAuras\GenericTrigger.lua:677>

Locals:
InCombatSkipped

The problem started when I did room at King rest with the 4 packs.

commented

Got the same problem in a Siege today (was my fourth dungeon of the session), using the new 1.1.1 release:

94x LibGetFrame-1.0\LibGetFrame-1.0-3.lua:77: UIParent:GetChildren(): Stack overflow
LibGetFrame-1.0\LibGetFrame-1.0-3.lua:77: in function <LibGetFrame-1.0\LibGetFrame-1.0.lua:72>
LibGetFrame-1.0\LibGetFrame-1.0-3.lua:121: in function <LibGetFrame-1.0\LibGetFrame-1.0.lua:96>
LibGetFrame-1.0\LibGetFrame-1.0-3.lua:180: in function GetFrame' [string "--[[ Error in 'Scan Events' ]] return funct..."]:155: in function <[string "--[[ Error in 'Scan Events' ]] return funct..."]:1> [C]: in function xpcall'
WeakAuras\GenericTrigger.lua:517: in function <WeakAuras\GenericTrigger.lua:511>
WeakAuras\GenericTrigger.lua:637: in function ScanEventsInternal' WeakAuras\GenericTrigger.lua:624: in function ScanEvents'
WeakAuras\GenericTrigger.lua:686: in function <WeakAuras\GenericTrigger.lua:677>

Locals:
InCombatSkipped

commented

This seems very consistent - everything starts fine, then I start getting small FPS drops on combat start/stop, and then it leads to the stack overflow errors mentioned above. Only a full client restart seems to fix the issue.

commented

Same issue from doing a raid just now:

397x LibGetFrame-1.0\LibGetFrame-1.0-3.lua:77: UIParent:GetChildren(): Stack overflow LibGetFrame-1.0\LibGetFrame-1.0-3.lua:77: in function <LibGetFrame-1.0\LibGetFrame-1.0.lua:72> LibGetFrame-1.0\LibGetFrame-1.0-3.lua:121: in function <LibGetFrame-1.0\LibGetFrame-1.0.lua:96> LibGetFrame-1.0\LibGetFrame-1.0-3.lua:180: in function GetFrame'
[string "--[[ Error in 'Scan Events' ]] return funct..."]:155: in function <[string "--[[ Error in 'Scan Events' ]] return funct..."]:1>
[C]: in function xpcall' WeakAuras\GenericTrigger.lua:517: in function <WeakAuras\GenericTrigger.lua:511> WeakAuras\GenericTrigger.lua:637: in function ScanEventsInternal'
WeakAuras\GenericTrigger.lua:624: in function ScanEvents' WeakAuras\GenericTrigger.lua:686: in function <WeakAuras\GenericTrigger.lua:677>

commented

@wheatbread @Toludin @Moowalker sorry for answering only now, i didn't see any notification for this issue

You have an addon or a weakauras polluting UIParent
To diagnose which one is doing shit, install the addon wowlua and run this code

hooksecurefunc("CreateFrame", function(_, _, parent)
  if parent == UIParent or parent == "UIParent" then
    local ok, count = pcall(function() select('#',UIParent:GetChildren())end)
    if not ok or (count and count > 300) then
        geterrorhandler()('This addon is screwing with you:\n' .. debugstack())
    end
  end
end)

When something try to create frames past the 300th you will get warned of what is doing it

commented

If you find what addon or weakauras is doing this please report to me and i'll see myself contact author to help him fix it

commented

The issue seems to be related to the ongoing problem of reloading/zoning duplicating WAs. Now that I regularly fully restart my client when I start getting those micro-jitters, I've not had this error occur again.

Rumor is this problem will be fixed in 8.1.5.

commented

If you say so - you would certainly know better than I - but I've not had this issue in a month and a half since restarting my client regularly when I start getting framerate jitters on combat start/stop, after routinely seeing these errors.

commented

These are 2 completely unrelated issues.

commented

The only thing the lib does at combat start/stop is it empty a table (the cahce), it could make a short FPS drop if the table took like 200mb+ maybe but it's a simple associative array frame address => unit

The issue here that can still happen is the LibGetFrame-1.0\LibGetFrame-1.0-3.lua:77: UIParent:GetChildren(): Stack overflow it is also a blizzard bug when UIParent have too much children, made by some bugged addon/aura.
I gave a code to help identify it, so if you still have this issue in dungeon please follow the instruction i gave and i will do the best i can to help fix it upstream.