History tab breaks sometimes when switching to another tab
crimsoncoyote opened this issue ยท 11 comments
To Reproduce
Steps to reproduce the behavior:
- Open unified gui
- Open History tab
- Hover over some things in the history tab
- Switch to another tab
- Switch back to history (should throw lua error here)
- History should be visible still
- Switch back to other tab
- Switch back to history (another lua error here) and history UI isn't loaded properly
AddOn and Game Version:
2.5.4
Video of issue: https://youtu.be/U9fb6amYGU8
Errors:
Message: ...lassicLootManager\Modules\GUI\UnifiedGUI_History.lua:32: attempt to index field '?' (a nil value)
Time: Wed Oct 26 00:36:36 2022
Count: 1
Stack: ...lassicLootManager\Modules\GUI\UnifiedGUI_History.lua:32: attempt to index field '?' (a nil value)
[string "=(tail call)"]: ?
[string "@Interface\AddOns\ClassicLootManager\Modules\GUI\UnifiedGUI_History.lua"]:32: in function <...lassicLootManager\Modules\GUI\UnifiedGUI_History.lua:31>
[string "@Interface\AddOns\ClassicLootManager\Modules\GUI\UnifiedGUI_History.lua"]:149: in function `fnDoCellUpdate'
[string "@Interface\AddOns\ClassicLootManager\Libs\lib-st\Core.lua"]:849: in function `Refresh'
[string "@Interface\AddOns\ClassicLootManager\Libs\lib-st\Core.lua"]:340: in function `SortData'
[string "@Interface\AddOns\ClassicLootManager\Libs\lib-st\Core.lua"]:613: in function <...rface\AddOns\ClassicLootManager\Libs\lib-st\Core.lua:610>
[string "=(tail call)"]: ?
[string "@Interface\AddOns\ClassicLootManager\Modules\GUI\UnifiedGUI.lua"]:60: in function <...AddOns\ClassicLootManager\Modules\GUI\UnifiedGUI.lua:56>
[string "@Interface\AddOns\ClassicLootManager\Modules\GUI\UnifiedGUI.lua"]:109: in function <...AddOns\ClassicLootManager\Modules\GUI\UnifiedGUI.lua:103>
[string "=[C]"]: ?
[string "@Interface\AddOns\ClassicLootManager\Libs\AceGUI-3.0\AceGUI-3.0.lua"]:72: in function <...ns\ClassicLootManager\Libs\AceGUI-3.0\AceGUI-3.0.lua:70>
[string "@Interface\AddOns\ClassicLootManager\Libs\AceGUI-3.0\AceGUI-3.0.lua"]:306: in function `Fire'
[string "@Interface\AddOns\Ace3\AceGUI-3.0\widgets\AceGUIContainer-TabGroup.lua"]:342: in function `SelectTab'
[string "@Interface\AddOns\Ace3\AceGUI-3.0\widgets\AceGUIContainer-TabGroup.lua"]:200: in function <...Ace3\AceGUI-3.0\widgets\AceGUIContainer-TabGroup.lua:197>
Message: ...lassicLootManager\Modules\GUI\UnifiedGUI_History.lua:32: attempt to index field '?' (a nil value)
Time: Wed Oct 26 00:36:37 2022
Count: 2
Stack: ...lassicLootManager\Modules\GUI\UnifiedGUI_History.lua:32: attempt to index field '?' (a nil value)
[string "=[C]"]: ?
[string "@Interface\AddOns\ClassicLootManager\Modules\GUI\UnifiedGUI_History.lua"]:32: in function <...lassicLootManager\Modules\GUI\UnifiedGUI_History.lua:31>
[string "@Interface\AddOns\ClassicLootManager\Modules\GUI\UnifiedGUI_History.lua"]:188: in function `handler'
[string "@Interface\AddOns\ClassicLootManager\Libs\lib-st\Core.lua"]:66: in function `FireUserEvent'
[string "@Interface\AddOns\ClassicLootManager\Libs\lib-st\Core.lua"]:94: in function <...rface\AddOns\ClassicLootManager\Libs\lib-st\Core.lua:92>
Message: ...lassicLootManager\Modules\GUI\UnifiedGUI_History.lua:32: attempt to index field '?' (a nil value)
Time: Wed Oct 26 00:36:38 2022
Count: 1
Stack: ...lassicLootManager\Modules\GUI\UnifiedGUI_History.lua:32: attempt to index field '?' (a nil value)
[string "=(tail call)"]: ?
[string "@Interface\AddOns\ClassicLootManager\Modules\GUI\UnifiedGUI_History.lua"]:32: in function <...lassicLootManager\Modules\GUI\UnifiedGUI_History.lua:31>
[string "@Interface\AddOns\ClassicLootManager\Modules\GUI\UnifiedGUI_History.lua"]:149: in function `fnDoCellUpdate'
[string "@Interface\AddOns\ClassicLootManager\Libs\lib-st\Core.lua"]:849: in function `Refresh'
[string "@Interface\AddOns\ClassicLootManager\Libs\lib-st\Core.lua"]:513: in function `SetSelection'
[string "@Interface\AddOns\ClassicLootManager\Libs\lib-st\Core.lua"]:493: in function <...rface\AddOns\ClassicLootManager\Libs\lib-st\Core.lua:492>
[string "=(tail call)"]: ?
[string "@Interface\AddOns\ClassicLootManager\Modules\GUI\UnifiedGUI.lua"]:51: in function <...AddOns\ClassicLootManager\Modules\GUI\UnifiedGUI.lua:40>
[string "@Interface\AddOns\ClassicLootManager\Modules\GUI\UnifiedGUI.lua"]:107: in function <...AddOns\ClassicLootManager\Modules\GUI\UnifiedGUI.lua:103>
[string "=[C]"]: ?
[string "@Interface\AddOns\ClassicLootManager\Libs\AceGUI-3.0\AceGUI-3.0.lua"]:72: in function <...ns\ClassicLootManager\Libs\AceGUI-3.0\AceGUI-3.0.lua:70>
[string "@Interface\AddOns\ClassicLootManager\Libs\AceGUI-3.0\AceGUI-3.0.lua"]:306: in function `Fire'
[string "@Interface\AddOns\Ace3\AceGUI-3.0\widgets\AceGUIContainer-TabGroup.lua"]:342: in function `SelectTab'
[string "@Interface\AddOns\Ace3\AceGUI-3.0\widgets\AceGUIContainer-TabGroup.lua"]:200: in function <...Ace3\AceGUI-3.0\widgets\AceGUIContainer-TabGroup.lua:197>
Locals: <none>
I was able to reproduce this consistently about 3/4 of the time after a reload. Closing and reopening the CLM GUI sometimes makes it start working again. There were a couple of times I couldn't get it to break, but I'm not sure why. My guess is the tab the CLM GUI was last on?
I've only tried with other addons enabled so far.
So I see what row can bug out but I am unable to reproduce it even with ElvUI enabled. There must be something else going on. Can you check with other addons disabled?
Disabled ElvUI and was able to reproduce. Probably some other addon. Seemed OK with nothing else/just ElvUI enabled.
I think I'll start with some addons that I know modify tooltips
I do use rating buster myself and have no issues. I feel in the guts some addon i dont use started to meddle with lib-st and it creates some sort of issues
ClassicLootManager.lua.txt
added .txt since github likes that more
Cannot reproduce even with your data. Please verify it happens when CLM is the only addon enabled. I did try with rating buster as you suggested but its not that.
Reopening because I think I see what the issue is.
This appears to be some kind of timing issue when populating CLM history. It shows up on my end due to RatingBuster, but it's not a direct conflict. I think it affects CLM just enough to cause issues.
This appears to have been introduced here: e544d45
Specifically:
local function ST_GetIsLoot(row)
return row.cols[5+1].value
end
What ends up happening is we get into the pendingLoot/loading state at https://github.com/ClassicLootManager/ClassicLootManager/blob/master/Modules/GUI/UnifiedGUI_History.lua#L310:
if UnifiedGUI_History.pendingLoot then
return {{cols = { {value = ""}, {value = ""}, {value = CLM.L["Loading..."]}, {value = ""}, {value = nil} }}}
end
We're only returning 5 columns here, but ST_GetIsLoot()
is looking for column 6, thus the exception. Not exactly sure how to truly fix it. I tried adding another {value = nil}
col at the end and it at least seems to at least prevent the error, but it also gets stuck at the "Loading..." message (until you reload the history tab in some way).