Skamer / Syling-Tracker

12 stars 2 forks source link

Lua-Error: "script ran too long" #81

Closed Digawen closed 11 months ago

Digawen commented 11 months ago

At irregular intervals I got a Lua error, which also caused my game to freeze for 1-2 seconds. (no FPS drop)

At the end of the M+ my game hung up completely.

I also tried it in a 2nd M+, same result, but it seemed that the problem would only occur as soon as the first boss was defeated.

At first I also thought it was due to a Weakaura. (https://wago.io/M+Timer)

But even after deleting and restarting WoW before the 2nd M+, there were still errors.

Version of SylingTracker: 2.0.0 Version of Scorpio: v197

Lua-Error:

180x Scorpio/Modules/Core.lua:78: script ran too long [string "@Scorpio/Modules/Core.lua"]:78: in function <Scorpio/Modules/Core.lua:73>

Locals: map =

{ = defined @SylingTracker/SylingModule.lua:105 } (for generator) = defined =[C]:-1 (for state) =
{ = defined @SylingTracker/SylingModule.lua:105 } (for control) =
{ OnActive = defined @SylingTracker/Contents/Keystone/Keystone.lua:35 _ActiveOnEvents =
{ } DebugTools = GetMapUIInfo = defined =[C]:-1 GetInstanceTextureFileID = defined Argument_Validate_006:3 GetActiveKeystoneInfo = defined =[C]:-1 GetAffixInfo = defined =[C]:-1 RegisterObservableContent = defined Argument_Validate_00aa:3 UPDATE_INSTANCE_INFO = defined @SylingTracker/Contents/Keystone/Keystone.lua:113 GetTime = defined =[C]:-1 UpdateDungeonTexture = defined @SylingTracker/Contents/Keystone/Keystone.lua:67 BecomeActiveOn = defined @SylingTracker/Contents/Keystone/Keystone.lua:31 GetInstanceInfo = defined =[C]:-1 API = _ActiveOnHandler = defined @SylingTracker/Contents/Keystone/Keystone.lua:31 ipairs = defined =[C]:-1 WORLD_STATE_TIMER_STOP = defined @SylingTracker/Contents/Keystone/Keystone.lua:156 LE_WORLD_ELAPSED_TIMER_TYPE_CHALLENGE_MODE = 2 _SylingActive = true C_ChallengeMode =
{ } Utils = CHALLENGE_MODE_START = defined @SylingTracker/Contents/Keystone/Keystone.lua:139 GetCriteriaInfo = defined =[C]:-1 KEYSTONE_CONTENT_SUBJECT =
{ } __PLOOP_ENV_BSENV =
{ } C_Scenario =
{ } GetInfo = defined =[C]:-1 GetWorldElapsedTime = defined =[C]:-1 CHALLENGE_MODE_DEATH_COUNT_UPDATED = defined @SylingTracker/Contents/Keystone/Keystone.lua:162 select = defined =[C]:-1 _ActivatingEventArgs =
{ } _ActiveByEvent = "CHALLENGE_MODE_START" ActiveOnEvents = GetActiveChallengeMapID = defined =[C]:-1 SystemEvent = WORLD_STATE_TIMER_START = defined @SylingTracker/Contents/Keystone/Keystone.lua:146 SylingTracker_ENEMY_PULL_COUNT_CHANGED = defined @SylingTracker/Contents/Keystone/Keystone.lua:169 KeystoneContentSubject = KEYSTONE_UPDATE = defined @SylingTracker/Contents/Keystone/Keystone.lua:133 GetStepInfo = defined =[C]:-1 PLOOP_ENV_OWNNS = UpdateObjectives = defined @SylingTracker/Contents/Keystone/Keystone.lua:41 UpdateKeystoneInfo = defined @SylingTracker/Contents/Keystone/Keystone.lua:78 } obj =
{ OnActive = defined @SylingTracker/Contents/Keystone/Keystone.lua:35 _ActiveOnEvents =
{ } DebugTools = GetMapUIInfo = defined =[C]:-1 GetInstanceTextureFileID = defined Argument_Validate_006:3 GetActiveKeystoneInfo = defined =[C]:-1 GetAffixInfo = defined =[C]:-1 RegisterObservableContent = defined Argument_Validate_00aa:3 UPDATE_INSTANCE_INFO = defined @SylingTracker/Contents/Keystone/Keystone.lua:113 GetTime = defined =[C]:-1 UpdateDungeonTexture = defined @SylingTracker/Contents/Keystone/Keystone.lua:67 BecomeActiveOn = defined @SylingTracker/Contents/Keystone/Keystone.lua:31 GetInstanceInfo = defined =[C]:-1 API = _ActiveOnHandler = defined @SylingTracker/Contents/Keystone/Keystone.lua:31 ipairs = defined =[C]:-1 WORLD_STATE_TIMER_STOP = defined @SylingTracker/Contents/Keystone/Keystone.lua:156 LE_WORLD_ELAPSED_TIMER_TYPE_CHALLENGE_MODE = 2 _Syling__Active = true C_ChallengeMod

Skamer commented 11 months ago

In the 2.0.2, the distance of quests is no longer updated in the instance, this was previously the case when your character is moving, this refresh every second.

Skamer commented 11 months ago

I identified the problem, and its origin, the 2.0.3 should fix the issue. In addition of that, the timers will now be updated every 0.5s (instead of each frame) for reducing the performance cost.

Remain other things i need to check, and plan to do an additional improvement/fix in the next update.

Digawen commented 11 months ago

Thank you for your work, with version 2.0.3 there were no problems during the M+ run, but at the end of the instance I had a long freeze that lasted several minutes.

The freeze started exactly when I defeated the final boss.

Including the following Lua error.

26x Scorpio/Modules/Core.lua:78: script ran too long [string "@Scorpio/Modules/Core.lua"]:78: in function <Scorpio/Modules/Core.lua:73>

Locals: map =

{ = defined @SylingTracker/SylingModule.lua:105 } (for generator) = defined =[C]:-1 (for state) =
{ = defined @SylingTracker/SylingModule.lua:105 } (for control) =
{ OnActive = defined @SylingTracker/Contents/Keystone/Keystone.lua:36 _ActiveOnEvents =
{ } DebugTools = GetMapUIInfo = defined =[C]:-1 GetInstanceTextureFileID = defined Argument_Validate_006:3 GetActiveKeystoneInfo = defined =[C]:-1 GetAffixInfo = defined =[C]:-1 RegisterObservableContent = defined Argument_Validate_00aa:3 UpdateObjectives = defined @SylingTracker/Contents/Keystone/Keystone.lua:43 GetTime = defined =[C]:-1 UpdateDungeonTexture = defined @SylingTracker/Contents/Keystone/Keystone.lua:69 BecomeActiveOn = defined @SylingTracker/Contents/Keystone/Keystone.lua:32 GetInstanceInfo = defined =[C]:-1 API = _ActiveOnHandler = defined @SylingTracker/Contents/Keystone/Keystone.lua:32 ipairs = defined =[C]:-1 WORLD_STATE_TIMER_STOP = defined @SylingTracker/Contents/Keystone/Keystone.lua:167 LE_WORLD_ELAPSED_TIMER_TYPE_CHALLENGE_MODE = 2 _SylingActive = true GetWorldElapsedTime = defined =[C]:-1 C_ChallengeMode =
{ } UpdateDeathCounter = defined @SylingTracker/Contents/Keystone/Keystone.lua:106 ActiveOnEvents = strsub = defined =[C]:-1 CHALLENGE_MODE_START = defined @SylingTracker/Contents/Keystone/Keystone.lua:150 GetCriteriaInfo = defined =[C]:-1 tonumber = defined =[C]:-1 select = defined =[C]:-1 GetDeathCount = defined =[C]:-1 __PLOOP_ENV_BSENV =
{ } _ActivatingEventArgs =
{ } C_Scenario =
{ } GetInfo = defined =[C]:-1 _ActiveByEvent = "CHALLENGE_MODE_START" CHALLENGE_MODE_DEATH_COUNT_UPDATED = defined @SylingTracker/Contents/Keystone/Keystone.lua:173 KeystoneContentSubject = GetActiveChallengeMapID = defined =[C]:-1 SylingTracker_ENEMY_PULL_COUNT_CHANGED = defined @SylingTracker/Contents/Keystone/Keystone.lua:182 SystemEvent = WORLD_STATE_TIMER_START = defined @SylingTracker/Contents/Keystone/Keystone.lua:157 Utils = KEYSTONE_UPDATE = defined @SylingTracker/Contents/Keystone/Keystone.lua:144 UPDATE_INSTANCE_INFO = defined @SylingTracker/Contents/Keystone/Keystone.lua:120 GetStepInfo = defined =[C]:-1 PLOOP_ENV_OWNNS = KEYSTONE_CONTENT_SUBJECT =
{ } UpdateKeystoneInfo = defined @SylingTracker/Contents/Keystone/Keystone.lua:80 } obj =
{ OnActive = defined @SylingTracker/Contents/Keystone/Keystone.lua:36 _ActiveOnEvents =
{ } DebugTools = GetMapUIInfo = defined =[C]:-1 GetInstanceTextureFileID = defined Argument_Validate_006:3 GetActiveKeystoneInfo = defined =[C]:-1 GetAffixInfo = defined =[C]:-1 RegisterObservableContent = defined Argument_Validate_00aa:3 UpdateObjectives = defined @SylingTracker/Contents/Keystone/Keystone.lua:43 GetTime = defined =[C]:-1 UpdateDungeonTexture = defined @SylingTracker/Contents/Keystone/Keystone.lua:69 BecomeActiveOn = defined @SylingTracker/Contents/Keystone/Keystone.lua:32 GetInstanceInfo = defined =[C]:-1 API = _ActiveOnHandler = defined @SylingTracker/Contents/Keystone/Keystone.lua:32 ipairs = <fu

Skamer commented 11 months ago

With the latest version (2.0.4), i improved my previous fix so no performance issues should be occur now.

Digawen commented 11 months ago

I can confirm this. Everything is running great again. Thanks for your work.