TomTomLite

6 - 50100-1.0.0 c-stack overflow (porting)

What steps will reproduce the problem?

  1. Porting (hearthstone, zone -> zone portals etc

What version of the product are you using?
v50100-1.0.0 + manually updated embeds (LibMapData-1.0 r130, LibWindow-1.1 r11 + latest Ace3 parts)

Do you have an error log of what happened?

Message: C stack overflow
Time: 04/27/13 00:31:13
Count: 2
[C]: ?
[C]: in function `WatchFrame_Update'
Interface\FrameXML\WatchFrame.lua:340: in function <Interface\FrameXML\WatchFrame.lua:282>
[C]: ?
[C]: in function `SetMapToCurrentZone'
Interface\AddOns\TomTomLite\MapUtils.lua:98: in function `GetPlayerPosition'
Interface\AddOns\TomTomLite\TomTomLite.lua:328: in function `UpdateArrow'
Interface\AddOns\TomTomLite\TomTomLite.lua:307: in function `?'
Interface\AddOns\TomTomLite\AddonCore.lua:122: in function `FireMessage'
Interface\AddOns\TomTomLite\TomTomLite.lua:297: in function `?'
Interface\AddOns\TomTomLite\AddonCore.lua:122: in function `FireMessage'
...
Interface\AddOns\TomTomLite\TomTomLite.lua:328: in function `UpdateArrow'
Interface\AddOns\TomTomLite\TomTomLite.lua:307: in function `?'
Interface\AddOns\TomTomLite\AddonCore.lua:122: in function `FireMessage'
Interface\AddOns\TomTomLite\TomTomLite.lua:297: in function `?'
Interface\AddOns\TomTomLite\AddonCore.lua:122: in function `FireMessage'
Interface\AddOns\TomTomLite\TomTomLite.lua:272: in function `AddWaypoint'
...erface\AddOns\TomTomLite\sources\QuestObjectives.lua:107: in function `OBJECTIVES_CHANGED'
...erface\AddOns\TomTomLite\sources\QuestObjectives.lua:23: in function <...erface\AddOns\TomTomLite\sources\QuestObjectives.lua:22>
[C]: in function `WatchFrame_Update'
Interface\FrameXML\WatchFrame.lua:369: in function <Interface\FrameXML\WatchFrame.lua:367>

Locals: msg = " C stack overflow"
funcnames = <table> {
 1 = "WatchFrame_Update"
 2 = "SetMapToCurrentZone"
 3 = "GetPlayerPosition"
 4 = "UpdateArrow"
 5 = "?"
 6 = "FireMessage"
 7 = "?"
 8 = "FireMessage"
 9 = "UpdateArrow"
 10 = "?"
 11 = "FireMessage"
 12 = "?"
 13 = "FireMessage"
 14 = "AddWaypoint"
 15 = "OBJECTIVES_CHANGED"
 16 = "WatchFrame_Update"
}
funcstr = "WatchFrame_Update > SetMapToCurrentZone > GetPlayerPosition > UpdateArrow > ? > FireMessage > ? > FireMessage > UpdateArrow > ? > FireMessage > ? > FireMessage > AddWaypoint > OBJECTIVES_CHANGED > WatchFrame_Update"

Please provide any additional information below.
This isn't reliably reproducible.
It happens only sometimes, usually after a long play session (2+ hrs) and several loading screens, I do however come across it once/day.

Name Description Size MD5
TomTomLite.patch unified diff (tomtomlite.lua) 2.2 KiB 3d62d57ac6e6...
QuestObjectives.patch unified diff ... 3.1 KiB f0f4bc797520...
ArchaeologyDigSites.patch unified diff ... 771 B e85a638b6e61...
User When Change
Dridzt Jul 20, 2013 at 13:56 UTC

Added attachment ArchaeologyDigSites.patch

Dridzt Jul 20, 2013 at 13:56 UTC

Added attachment QuestObjectives.patch

Dridzt Jul 20, 2013 at 13:55 UTC

Added attachment TomTomLite.patch

Dridzt Jul 20, 2013 at 13:55 UTC

Deleted attachment TomTomLite-v50100-1.0.0-patch.zip: replacing with unified diff patches

Dridzt May 08, 2013 at 17:44 UTC

Added attachment TomTomLite-v50100-1.0.0-patch.zip

Dridzt Apr 26, 2013 at 21:42 UTC Create

You must login to post a comment. Don't have an account? Register to get one!

  • 6 comments
  • Avatar of Dridzt Dridzt Jul 21, 2013 at 11:35 UTC - 0 likes

    I'm sure I had this comment before but curseforge ate it?

    Unrelated to this ticket but I haven't been able to get the custom waypoint stuff to work with TomTomLite.

    I mean the /ttl set zoneName x y command.
    I've tried with zoneName and "zoneName" and with other sources disabled (since they run OnUpdate I assumed they override any custom waypoints if there's a questobjective or such in the zone).
    In any case I haven't been able to make arrow show for custom waypoints.

    Would it be an idea to have the addon be a bit more verbose when it thinks it succeeded in setting a custom waypoint but more importantly when it failed (because it couldn't match the zone name for example).
    It's hard to know what's happening from a user perspective.

    Is that functionality finished, am I using it wrong?

    Last edited Jul 21, 2013 by Dridzt
  • Avatar of Dridzt Dridzt Jul 20, 2013 at 13:58 UTC - 0 likes

    Added unified diffs for the 3 changed files

    TomTomLite.lua
    sources\QuestObjectives.lua
    sources\ArchaeologyDigSites.lua

  • Avatar of Cladhaire Cladhaire Jul 20, 2013 at 12:45 UTC - 0 likes

    I can't apply a .zip like this, it shows as changing every single line in the file. Can you possibly prepare an actual .patch against the latest git revision so I can see what you've changed?

  • Avatar of Dridzt Dridzt May 26, 2013 at 10:04 UTC - 0 likes

    Just dropping a note that I've been running with the throttled version for a few weeks now (including the 5.3 part of those) and haven't had an occurrence of the stack overflow issue.

    I'd say it was indeed related to bursty events.

  • Avatar of Dridzt Dridzt May 08, 2013 at 17:43 UTC - 0 likes

    I made a couple experimental changes to my local copy to see if they would alleviate this issue.

    Added P_E_W / P_L_W to the main file and updating a flag to try detect loading screens and skip processing intensive functions when it's set (OnUpdates + spammy events in main file and sources).
    PLAYER_LEAVING_WORLD used to fire on any loading screen that involves a zone change, not sure if this is still the case or it just fires on continent change now.
    If not then this change might be inconsequential (won't hurt but won't actually do much of anything either)

    Additionally I made some changes to the QuestObjectives.lua file since it's the questobj source that's giving me the stack overflow errors every time.
    I added a delay mechanism to the OBJECTIVES_CHANGED handler so that it does its processing in 1sec intervals in case the event (or hooked functions) fires very rapidly.
    Also made some other minor changes mostly cosmetic (avoid using select() in a loop, avoid literal string concat and a tonumber() call, change the way the while loop terminates)

    I haven't gotten the error with the changed package but since it wasn't 100% reproducible I'm not sure what if any of the above helped.

    Changed files are attached to the ticket, including the updated libraries since LibMapData-1.0 had a recent updates that claims to fix the oddities with map sizes on Isle of Thunder.

    Last edited May 13, 2013 by Dridzt
  • Avatar of Dridzt Dridzt Apr 27, 2013 at 07:18 UTC - 0 likes

    I think I'm going to try 'solve' it in my local copy by suspending processing between PLAYER_LEAVING_WORLD and PLAYER_ENTERING_WORLD (ie in loading screens) maybe even add a little delay before resuming after P_E_W fires.

  • 6 comments

Facts

Last updated
Jul 20, 2013
Reported
Apr 26, 2013
Status
New - Issue has not had initial review yet.
Type
Defect - A shortcoming, fault, or imperfection
Priority
Medium - Normal priority.
Votes
0

Reported by

Possible assignees