Hekili / hekili

Hekili Priority Helper for DPS and Tanks (WoW Retail)
419 stars 221 forks source link

Endless stack overflow errors (fire mage) #1130

Closed Erstyx closed 3 years ago

Erstyx commented 3 years ago

Describe the Bug/Issue No recommendations are shown during combat; instead, I get an endless stream of stack overflow errors. The addon can't be paused during this time; I had to disable it just to be able to copy the error out of bugsack.

To Reproduce Log in with add-on enabled.

Expected behavior No LUA errors; recommendations appear.

Screenshots n/a

1.  The information from the Issue Reporting tab ( /hekili > Issue Reporting ).

build: v9.1.0-1.0.2 level: 60 (60) class: MAGE spec: fire

talents: conflagration flame_on frenetic_speed kindling rune_of_power searing_touch shimmer

pvptalents: none

covenant: venthyr

conduits: cryofreeze = 6 diverted_energy = 6 flame_accretion = 4 infernal_cascade = 5

soulbinds: [theotar_the_mad_duke] exquisite_ingredients = 1 soothing_shade = 1 token_of_appreciation = 1 watch_the_shoes! = 1

sets: none

gear: ardent_sunstar_signet = 1 chalice_nobles_signet = 1 charm_of_eternal_winter = 1 cinch_of_infinite_tightness = 1 cowled_batwing_cloak = 1 doubtweavers_handwraps = 1 glyph_of_assimilation = 1 gorewrought_wand = 1 grimveiled_hood = 1 high_torturers_smock = 1 order_of_embers_tabard = 1 shawl_of_the_penitent = 1 soul_igniter = 1 soulbreakers_ebony_leggings = 1 soulbreakers_ebony_slippers = 1 soulbreakers_ebony_wraps = 1 stonewrights_infused_stonecarver = 1

legendaries: fevered_incantation = 1

itemIDs: 160541, 173245, 180906, 180917, 180928, 181218, 181684, 182426, 182986, 183020, 183028, 183034, 183035, 183040, 184019, 184021, 184170

settings: aoe = 3 buffPadding = 0 custom1Name = Custom 1 custom2Name = Custom 2 cycle = false cycle_min = 6 damage = true damageDots = false damageExpiration = 6 damagePets = false damageRange = 0 debuffPadding = 0 enabled = true enhancedRecheck = false maxRefresh = 10 maxTime = 33 nameplateRange = 8 nameplates = false package = Fire petbased = false potionsReset = 20180919.1 throttleRefresh = false throttleTime = false prevent_hardcasts = false pyroblast_pull = false

toggles: cooldowns = false custom1 = false custom2 = false defensives = false essences = true interrupts = false mode = automatic potions = false

3.  If reporting an error (i.e., the addon freezes and/or disables itself), please install the BugSack and BugGrabber addons as they will enable you to paste the exact error message, with detail that will help me identify where the code error is located.  You can paste the error information here or use pastebin.com for that as well.

2526x Hekili\Classes\MageFire.lua:794: C stack overflow [string "@Hekili\Classes\MageFire.lua"]:794: in function <Hekili\Classes\MageFire.lua:794>

[string "@Hekili\State.lua"]:2801: in function <Hekili\State.lua:2677> [string "@Hekili\Classes\MageFire.lua"]:573: in function <Hekili\Classes\MageFire.lua:572>

[string "@Hekili\Classes\MageFire.lua"]:587: in function <Hekili\Classes\MageFire.lua:582>

[string "@Hekili\Classes\MageFire.lua"]:603: in function <Hekili\Classes\MageFire.lua:582>

[string "@Hekili\Classes\MageFire.lua"]:603: in function <Hekili\Classes\MageFire.lua:582>

[string "@Hekili\Classes\MageFire.lua"]:603: in function <Hekili\Classes\MageFire.lua:582> ... [string "@Hekili\Classes\MageFire.lua"]:603: in function <Hekili\Classes\MageFire.lua:582>

[string "@Hekili\Classes\MageFire.lua"]:496: in function <Hekili\Classes\MageFire.lua:495>

[string "-- Fire:default:21 recheck return buff.combustion.remains, safenum(variable.time_to_combustion)-safenum(variable.combustion_precast_time)+execute_time"]:2: in function Recheck' [string "@Hekili\State.lua"]:1467: in functionrecheck' [string "@Hekili\Core.lua"]:948: in function GetPredictionFromAPL' [string "@Hekili\Core.lua"]:1369: in functionGetNextPrediction' [string "@Hekili\Core.lua"]:1745: in function `ProcessHooks' [string "@Hekili\UI.lua"]:920: in function <Hekili\UI.lua:785>

Locals: (temporary) =

{ major = false rank = 0 } (temporary) = nil (temporary) = defined @Hekili\State.lua:3645 (temporary) =
{ major = false rank = 0 } (temporary) = "enabled" (temporary) = "C stack overflow"

Hekili commented 3 years ago

Thanks, fix incoming.

Erstyx commented 3 years ago

Thanks, but I still had the issue after applying your commit locally. I think the problem is in this block (MageFire.lua:601):

    -- # Delay Combustion for Mirrors of Torment
    -- actions.combustion_timing+=/variable,name=combustion_time,op=max,value=cooldown.mirrors_of_torment.remains,if=covenant.venthyr&cooldown.mirrors_of_torment.remains-25<variable.combustion_time
    if covenant.venthyr and cooldown.mirrors_of_torment.remains - 25 < variable.combustion_time then
        value = max( value, cooldown.mirrors_of_torment.remains )
    end

Changing variable.combustion_time to value in the line below the comment seems to have fixed the issue for me. I suspect line 609 has the same issue.

Hekili commented 3 years ago

Good catch. Looks like two different stack overflow risks in one release. Will fix. Thanks.

Hekili commented 3 years ago

(There was a third one, actually, too -- but it won't affect you because you're not a Necrolord.)