WeakAuras / WeakAuras2

World of Warcraft addon that provides a powerful framework to display customizable graphics on your screen.
https://weakauras.wtf
GNU General Public License v2.0
1.31k stars 318 forks source link

WeakAuras sucks at loading auras in season 4 #5048

Closed Ironii closed 5 months ago

Ironii commented 6 months ago

Is there an existing issue for this?

Description

Sometimes when pulling a (raid) boss for the first time, WA throws script run too long error, resulting on WA's not working for current pull. I saw the same error earlier this expansion, but after removing old auras with encounter load, the problem disappeared, now with S4 and the "need" for 3 raid tier auras, it appeared again. (i havent paid enough attention to say for sure if its just encounter auras that break, i don't use too many auras without encounter load)

Error provided is from pulling Sarkareth (relevant(?) because the error comes from Magmorax wa with correct encounter id) Not tested with just WeakAuras enabled

WeakAuras Version

5.12.9

World of Warcraft Flavor

Retail (Default)

World of Warcraft Region

EU

Tested with only WeakAuras

I got this issue with only WeakAuras enabled

Lua Error

1x WeakAuras/RegionTypes/Group.lua:61: script ran too long
[string "@WeakAuras/RegionTypes/Group.lua"]:61: in function <WeakAuras/RegionTypes/Group.lua:55>
[string "@WeakAuras/RegionTypes/Group.lua"]:110: in function `modify'
[string "@WeakAuras/WeakAuras.lua"]:3280: in function `SetRegion'
[string "@WeakAuras/WeakAuras.lua"]:3345: in function <WeakAuras/WeakAuras.lua:3325>
[string "@WeakAuras/WeakAuras.lua"]:3355: in function `EnsureRegion'
[string "@WeakAuras/WeakAuras.lua"]:1791: in function <WeakAuras/WeakAuras.lua:1649>
[string "@WeakAuras/WeakAuras.lua"]:1858: in function `ScanForLoads'
[string "@WeakAuras/WeakAuras.lua"]:1928: in function <WeakAuras/WeakAuras.lua:1926>

Locals:
data = <table> {
 iconSource = -1
 authorOptions = <table> {
 }
 customText = ""
 yOffset = 0
 anchorPoint = "CENTER"
 cooldownSwipe = true
 cooldownEdge = false
 actions = <table> {
 }
 triggers = <table> {
 }
 internalVersion = 73
 progressSource = <table> {
 }
 animation = <table> {
 }
 desaturate = false
 version = 158
 subRegions = <table> {
 }
 height = 70
 load = <table> {
 }
 useAdjustededMax = false
 source = "import"
 frameStrata = 1
 config = <table> {
 }
 color = <table> {
 }
 parent = "Magmorax - Icons"
 useAdjustededMin = false
 regionType = "icon"
 information = <table> {
 }
 conditions = <table> {
 }
 keepAspectRatio = false
 liquidData = <table> {
 }
 anchorFrameType = "SCREEN"
 useCooldownModRate = true
 cooldownTextDisabled = true
 semver = "1.0.157"
 tocversion = 100206
 id = "Searing Heat"
 icon = true
 alpha = 1
 width = 70
 zoom = 0.300000
 uid = "liquid-qUyWdmzroNg"
 inverse = false
 xOffset = 0
 displayIcon = "236220"
 cooldown = true
 selfPoint = "CENTER"
}
region = nil
blx = 0
bly = 0
trx = nil
try = nil
width = 70
(*temporary) = 70
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "script ran too long"

2 additional lua errors from a guildie, a bit different but happened on the same boss, i think it just broke at different times than mine (he reloaded between pulls so 2 errors)
1)
1x WeakAuras/WeakAuras.lua:3367: script ran too long
[string "@WeakAuras/WeakAuras.lua"]:3367: in function `GetRegion'
[string "@WeakAuras/RegionTypes/Group.lua"]:108: in function `modify'
[string "@WeakAuras/WeakAuras.lua"]:3280: in function `SetRegion'
[string "@WeakAuras/WeakAuras.lua"]:3345: in function <WeakAuras/WeakAuras.lua:3325>
[string "@WeakAuras/WeakAuras.lua"]:3355: in function `EnsureRegion'
[string "@WeakAuras/WeakAuras.lua"]:1791: in function <WeakAuras/WeakAuras.lua:1649>
[string "@WeakAuras/WeakAuras.lua"]:1858: in function `ScanForLoads'
[string "@WeakAuras/WeakAuras.lua"]:1928: in function <WeakAuras/WeakAuras.lua:1926>

Locals:
id = "Tactical Destruction (countdown)"
cloneId = nil
(*temporary) = nil
(*temporary) = "script ran too long"
clones = <table> {
 Raszageth Fulminating Charge Freedom CD Assignments = <table> {
 }
 Calamitous Strike cast = <table> {
 }
 Blazing Roar = <table> {
 }
 Terror Claws = <table> {
 }
 Constricting Thicket = <table> {
 }
 Liquid Anchor - List 1 = <table> {
 }
 Poisonous Javelin normal/heroic (glow) = <table> {
 }
 斯莫德隆 分担 计时条 = <table> {
 }
 Sennarth Chilling Blast = <table> {
 }
 Collapsed Earth = <table> {
 }
 分担提前高亮 戒律用 (1st wave) = <table> {
 }
 Noxious Blossom = <table> {
 }
 Cyclone = <table> {
 }
 Doom Flame (DoT) = <table> {
 }
 种子列表 = <table> {
 }
 Corrupting Shadow/Blazing Heat (say) = <table> {
 }
 驱散 安排(治疗用) = <table> {
 }
 Threaded Blast (on you) = <table> {
 }
 Atal'Dazar Nameplate Important Casts = <table> {
 }
 M+ KeyInfo = <table> {
 }
 羽毛时间预警 = <table> {
 }
 Hurtling Barrage (others) = <table> {
 }
 虚无之拥 施法条 = <table> {
 }
 Seared = <table> {
 }
 Smolderon Orb Soak Traffic Lights = <table> {
 }
 Searing Claws = <table> {
 }
 Hellboil = <table> {
 }
 Molten Swing = <table> {
 }
 Burning Wound = <table> {
 }
 花的数量 debuff = <table> {
 }
 Seeking Inferno assignments = <table> {
 }
 P3 吐息 文字提示 = <table> {
 }
 野蛮猛击 施法条 = <table> {
 }
 幽暗焚烧 吸收条 = <table> {
 }
 Feather assignment = <table> {
 }
 Raszageth Volatile Spark Buff Count Nameplate Anchors = <table> {
 }
 SeedAbuse = <table> {
 }
 Unstable Gusts = <table> {
 }
 Oblivion Stacks List = <table> {
 }
 Web Blast taunt = <table> {
 }
 Zskarn Add HP Bars = <table> {
 }
 炽烈增生 计时条 = <table> {
 }
 Sarkareth Empty Recollection Automarker = <table> {
 }
 Sarkareth P3 Soon Alert = <table> {
 }
 P3 正面顺劈 = <table> {
 }
 Surging Blast (circle) = <table> {
 }
 Drenched Blades taunt = <table> {
 }
 P2 吐息 文字提示 = <table> {
 }
 奔袭之暗 施法条 = <table> {
 }
 Fyr'alath's Bite cast (co-tank) = <table> {
 }
 Tindral Dispel Raid Frame Numbers = <table> {
 }
 Heavy Cudgel = <table> {
 }
 Flaming Upsurge (co-tank) = <table> {
 }
 Void Bomb spawns = <table> {
 }
 Broodkeeper Staff Cast P2 = <table> {
 }
 Agonizing Claws = <table> {
 }
 Erupting Bedrock = <table> {
 }
 Fyrakk P2 Add CC List TSU = <table> {
 }
 Raszageth Blazing Roar Cast + Absorb Shield Amount = <table> {
 }
 不能驱散 debuff 图标 = <table> {
 }
 Kurog Grimtotem Don't Soak Alert = <table> {
 }
 Priest Glow - Casting Symbol/Hymn - Pink A = <table> {
 }
 Broodkeeper Egg Wake Up Cast = <table> {
 }
 Raid WeakAuras Helper Functions 2 = <table> {
 }
 Shadow Cage/Molten Eruption soon = <table> {
 }
 Terros Resonating Annihilation = <table> {
 }
 Intermission say spam = <table> {
 }
 吸人 = <table> {
 }
 Electrified Jaws cast (co-tank) = <table> {
 }
 单驱cd = <table> {
 }
 Volatile stacks (nameplate) = <table> {
 }
 Calamitous Strike taunt = <table> {
 }
 凤凰盯人血条 = <table> {
 }
 熊 大招 计时条 = <table> {
 }
 Ignited Essence = <table> {
 }
 Woven Resonance (co-tank) = <table> {
 }
 Magma Flow (magic dispel) = <table> {
 }
 Verdant Matrix = <table> {
 }
 Flaming Sap = <table> {
 }
 Stormsurge shield = <table> {
 }
 Blistering Splinters = <table> {
 }
 Mass Dispel CDs 2 = <table> {
 }
 Raszageth Stormsurge Charge Icons = <table> {
 }
 Volcoross Volcanic Disgorge Soon Text (Bait) = <table> {
 }
 炽热暮光 吸收条 = <table> {
 }
 Soulwell Alert = <table> {
 }
 Rending Charge Auras 2 = <table> {
 }
 接球 by exrt = <table> {
 }
 深渊吐息 持续时间 = <table> {
 }
 小怪出现 = <table> {
 }
 Black Rook Hold  = <table> {
 }
 Scorchtail Crash = <table> {
 }
 Waycrest Manor  = <table> {
 }
 Rushing Shadows (stun) = <table> {
 }
 Searing Carnage Left (No Debuff) = <table> {
 }
 Dimensional Rift Gain Charges Sound = <table> {
 }
 Sundered Shadow = <table> {
 }
 Song of the Dragon = <table> {
 }
 插矛 分散圈 = <table> {
 }
 Astral Heat = <table> {
 }
 P3 别出去 = <table> {
 }
 Flame Shield = <table> {

2)
1x WeakAuras/WeakAuras.lua:3784: script ran too long
[string "@WeakAuras/WeakAuras.lua"]:3784: in function <WeakAuras/WeakAuras.lua:3783>
[string "=(tail call)"]: ?
[string "@WeakAuras/RegionTypes/Icon.lua"]:388: in function `modify'
[string "@WeakAuras/WeakAuras.lua"]:3280: in function `SetRegion'
[string "@WeakAuras/WeakAuras.lua"]:3345: in function <WeakAuras/WeakAuras.lua:3325>
[string "@WeakAuras/WeakAuras.lua"]:3355: in function `EnsureRegion'
[string "@WeakAuras/WeakAuras.lua"]:1791: in function <WeakAuras/WeakAuras.lua:1649>
[string "@WeakAuras/WeakAuras.lua"]:1858: in function `ScanForLoads'
[string "@WeakAuras/WeakAuras.lua"]:1928: in function <WeakAuras/WeakAuras.lua:1926>

Locals:
data = <table> {
 iconSource = -1
 wagoID = "qF0IUaIt4"
 xOffset = 0
 preferToUpdate = false
 customText = "function()
    return aura_env.config.text
end

"
 yOffset = 0
 anchorPoint = "CENTER"
 cooldownSwipe = true
 cooldownEdge = false
 actions = <table> {
 }
 triggers = <table> {
 }
 internalVersion = 73
 progressSource = <table> {
 }
 animation = <table> {
 }
 desaturate = false
 version = 120
 subRegions = <table> {
 }
 height = 64
 load = <table> {
 }
 useAdjustededMax = false
 source = "import"
 color = <table> {
 }
 uid = "AadLw(Yi1C9"
 icon = true
 keepAspectRatio = false
 useAdjustededMin = false
 regionType = "icon"
 cooldown = true
 conditions = <table> {
 }
 authorOptions = <table> {
 }
 parent = " 鳞长萨卡雷斯 图标"
 anchorFrameType = "SCREEN"
 frameStrata = 1
 zoom = 0.300000
 semver = "1.0.119"
 tocversion = 100100
 id = "无限迫压"
 cooldownTextDisabled = true
 alpha = 1
 width = 64
 useCooldownModRate = false
 config = <table> {
 }
 inverse = false
 url = "https://wago.io/qF0IUaIt4/120"
 displayIcon = 135782
 information = <table> {
 }
 selfPoint = "RIGHT"
}
triggernum = -10
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "script ran too long"
func = <function> defined @WeakAuras/WeakAuras.lua:3783
mode = "or"
GetTriggerSystem = <function> defined @WeakAuras/WeakAuras.lua:3776
functionName = "CanHaveTooltip"

Reproduction Steps

I only remember seeing this happen on last bosses of a raid (raszageth, sarkareth, fyrakk), (combination of vast amount of auras for single boss + total amount of encounter auras?), but i havent seen it enough to call it easily reproducible

Last Good Version

No response

Screenshots

No response

Export String

No response

Bisector Report

No response

InfusOnWoW commented 6 months ago

We need your whole settings to debug this.

emptyrivers commented 6 months ago

Right, so this complaint has cropped up a few times in discord. I think ironi is correct in their diagnosis of the problem being that there are too many auras installed to correctly load them inside of the (presumably strict) script timeout, at least with our current strategy.

The lazy answer is "eh you probably don't actually need that many auras installed", which I do think is true! But perhaps we can do something to be a bit smarter about which auras to scan on ENCOUNTER_START.

InfusOnWoW commented 5 months ago

Well I suspect that this is caused by the lazy aura creation I did for DF, and when an encouter starts regions get created. Apparently though, based on the debug information, auras not relevant for the encounter get created and apparently aura creation is too slow.

We can easily simulate an encounter start and check which auras get created.

We (that is rivers) have a tool now which can also do a more fine-grained profiling of the region creation process.

But for both we need an actual complete set of auras from someone affected. So far this bug reports lacks that data.