Script ran too long (game freezing)
zaphon opened this issue ยท 3 comments
What version of the game you are experiencing the issue with:
Retail
Describe the bug
Tanking dungeons today (leveling toons), keep getting freezes and they tie back to 2 errors I'm getting with
1x ...nterface/AddOns/NeatPlatesWidgets/ResourceWidget.lua:468: script ran too long
[string "@Interface/AddOns/NeatPlatesWidgets/ResourceWidget.lua"]:468: in function `UpdatePoints'
[string "@Interface/AddOns/NeatPlatesWidgets/ResourceWidget.lua"]:376: in function `Expire'
[string "@Interface/AddOns/NeatPlatesWidgets/WidgetCore.lua"]:61: in function <Interface/AddOns/NeatPlatesWidgets/WidgetCore.lua:52>
Locals:
(*temporary) = Frame {
0 = <userdata>
UpdatePoints = <function> defined @Interface/AddOns/NeatPlatesWidgets/ResourceWidget.lua:418
_Hide = <function> defined =[C]:-1
guid = "Creature-0-4216-2287-16184-167892-00037171E6"
Update = <function> defined @Interface/AddOns/NeatPlatesWidgets/ResourceWidget.lua:471
Points = <table> {
}
UpdateContext = <function> defined @Interface/AddOns/NeatPlatesWidgets/ResourceWidget.lua:484
Hide = <function> defined @Interface/AddOns/NeatPlatesWidgets/ResourceWidget.lua:573
}
(*temporary) = <table> {
1 = <table> {
}
2 = <table> {
}
3 = <table> {
}
4 = <table> {
}
5 = <table> {
}
6 = <table> {
}
}
(*temporary) = 6
(*temporary) = 16
(*temporary) = -8
(*temporary) = <table> {
1 = 0
2 = 0
3 = 0
4 = 0
5 = 0
6 = 0
}
(*temporary) = <function> defined =[C]:-1
(*temporary) = <table> {
1 = <table> {
}
2 = <table> {
}
3 = <table> {
}
4 = <table> {
}
5 = <table> {
}
6 = <table> {
}
}
(*temporary) = <function> defined @Interface/AddOns/NeatPlatesWidgets/ResourceWidget.lua:434
(*temporary) = "script ran too long"
GetPlayerPower = <function> defined @Interface/AddOns/NeatPlatesWidgets/ResourceWidget.lua:313
CalculatePointSpacing = <function> defined @Interface/AddOns/NeatPlatesWidgets/ResourceWidget.lua:355
CreateResourceIcon = <function> defined @Interface/AddOns/NeatPlatesWidgets/ResourceWidget.lua:380
GetResourceTexture = <function> defined @Interface/AddOns/NeatPlatesWidgets/ResourceWidget.lua:327
PolledHideIn = <function> defined @Interface/AddOns/NeatPlatesWidgets/WidgetCore.lua:78
and
13x ...nterface/AddOns/NeatPlatesWidgets/ResourceWidget.lua:93: attempt to perform arithmetic on local 'start' (a nil value)
[string "@Interface/AddOns/NeatPlatesWidgets/ResourceWidget.lua"]:93: in function <...nterface/AddOns/NeatPlatesWidgets/ResourceWidget.lua:65>
[string "=(tail call)"]: ?
[string "@Interface/AddOns/NeatPlatesWidgets/ResourceWidget.lua"]:421: in function `UpdatePoints'
[string "@Interface/AddOns/NeatPlatesWidgets/ResourceWidget.lua"]:376: in function `Expire'
[string "@Interface/AddOns/NeatPlatesWidgets/WidgetCore.lua"]:61: in function <Interface/AddOns/NeatPlatesWidgets/WidgetCore.lua:52>
Locals:
self = <table> {
GetPower = <function> defined @Interface/AddOns/NeatPlatesWidgets/ResourceWidget.lua:65
POWER = 5
POINT = "DK-Rune"
}
points = <table> {
}
runeMap = <table> {
2 = "Frost"
RUNETYPE_CHROMATIC = "Unholy"
3 = "Unholy"
RUNETYPE_BLOOD = "Blood"
RUNETYPE_FROST = "Frost"
4 = "Death"
RUNETYPE_DEATH = "Death"
1 = "Blood"
}
runeOrder = <table> {
1 = 1
2 = 2
3 = 3
4 = 4
5 = 5
6 = 6
}
(for generator) = <function> defined =[C]:-1
(for state) = <table> {
1 = 1
2 = 2
3 = 3
4 = 4
5 = 5
6 = 6
}
(for control) = 1
_ = 1
i = 1
point = <table> {
EXPIRATION = 0
ICON = "DK-Rune"
DURATION = 0
STATE = "Off"
}
start = nil
duration = nil
runeReady = nil
(*temporary) = "string"
(*temporary) = "DK-Rune"
(*temporary) = "string"
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to perform arithmetic on local 'start' (a nil value)"
getPointIcon = <function> defined @Interface/AddOns/NeatPlatesWidgets/ResourceWidget.lua:51
This should be fixed in the latest release(v426).
It's really odd that it doesn't manage to get a rune to compare duration against, but I've added an extra check to make sure it actually gets a rune instead of just assuming.
As for the "Scrip ran too long" issue, I've removed the "Expiration" function that it seems to stem from. It shouldn't be needed as it should function properly without it, but it just existed to make sure rune states don't get stuck. That should hopefully fix the issue altogether. But if you notice any issues with runes getting stuck I would love to know.
Thanks, will check it out and let you know. I was able to reproduce it really rapidly on my DK in dungeons.