idTip Community Fork

idTip Community Fork

25.9k Downloads

Getting a C Stack Overflow error

spaceturttle opened this issue ยท 7 comments

commented

Not entirely sure what is causing this one, but it triggers when idTip is the only addon loaded, and slowly counts up after each tooltip

Message: C stack overflow
Time: Mon Oct 17 19:29:04 2022
Count: 6
Stack: C stack overflow
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
...
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: in function Hide' [string "@Interface/FrameXML/GameTooltip.lua"]:632: in function GameTooltip_Hide'
[string "@Interface/FrameXML/ContainerFrame.lua"]:1480: in function <Interface/FrameXML/ContainerFrame.lua:1479>

Locals: (*temporary) = GameTooltip {
0 =
SetQuestLogRewardSpell = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetQuestPartyProgress = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
ProcessLineData = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:166
SetPvpTalent = defined =[C]:-1
SetExistingSocketGem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetHyperlink = defined =[C]:-1
SetUnit = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetAzeriteEssence = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
shouldRefreshData = true
SetVoidDepositItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetVoidWithdrawalItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
hasMoney = 1
numMoneyFrames = 1
SetInfoBackdropStyle = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:200
waitingForData = false
RefreshData = defined @Interface/FrameXML/GameTooltip.lua:924
SetSocketGem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
info =

{
}
shoppingTooltips =
{
}
updateTooltipTimer = 0.175000
SetLootCurrency = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetSlottedKeystone = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetWorldCursor = defined @Interface/FrameXML/GameTooltip.lua:943
SetLootItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
ItemTooltip = Frame {
}
GetUnit = defined @Interface/FrameXML/GameTooltip.lua:1001
SetOwnedItemByID = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
StatusBar = GameTooltipStatusBar {
}
SetQuestLogSpecialItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
AddLineDataText = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:186
SetVoidItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetRecipeReagentItem = defined =[C]:-1
SetQuestCurrency = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
TextRight1 = GameTooltipTextRight1 {
}
SetWeeklyReward = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetMerchantItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetMerchantCostItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetEnhancedConduit = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
BottomOverlay = Texture {
}
SetSpellByID = defined =[C]:-1
SetTradeTargetItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetSocketedRelic = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
ProcessInfo = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:107
ProcessLines = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:156
NineSlice = Frame {
}
SetInventoryItem = defined @Interface/Sha

commented

EDIT: I could be way off, but I get the feeling that adding a tiny "refresh" or delay timer before the addon tries to display the data might be an easy way to fix it. 50-100ms between "updates" shouldn't feel laggy. But who knows, maybe you just made a typo and I'm wasting my time lol.

BTW I did get the chance to notice some of the new features you're adding. The new line for itemSpellID (or whatever it was called) is really cool. I love that you're not just maintaining idTip at the bare minimum and are instead iterating on it. GJ & TY
-end edit-

I came to report the same error. I was using the ~10/17/22 Master version [3f370b9] assuming that string is the version, IDK I'm new to git.

The error seems to trigger when you mouseover too many things too quickly.
An easy way to reproduce it is simply open your Talent window on beta and just keep swiping your cursor back and forth and up and down (without clicking) until the error triggers, should only take 20-30 secs.

I can't code, but my gut tells me that at some point when you trigger too many tooltips in a row that the code tries to display the data from 2 tooltips at the same time, that starts a memory leak, and it slowly trickles on its own after it starts. That might be useless info, but hopefully it helps you find it since the bugsack reports are bout useless.

57x C stack overflow
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
...
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: ?
[string "=[C]"]: in function Hide' [string "@Interface/FrameXML/GameTooltip.lua"]:632: in function GameTooltip_Hide'
[string "@Interface/AddOns/Blizzard_SharedTalentUI/Blizzard_SharedTalentButtonTemplates.lua"]:33: in function <...redTalentUI/Blizzard_SharedTalentButtonTemplates.lua:32>

Locals:
(*temporary) = GameTooltip {
0 =
SetQuestLogRewardSpell = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetQuestPartyProgress = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
ProcessLineData = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:166
hasMoney = 1
SetPvpTalent = defined =[C]:-1
SetExistingSocketGem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetHyperlink = defined =[C]:-1
SetUnit = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetAzeriteEssence = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetVoidDepositItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetVoidWithdrawalItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
numMoneyFrames = 1
shouldRefreshData = false
info =

{
}
SetInfoBackdropStyle = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:200
waitingForData = false
RefreshData = defined @Interface/FrameXML/GameTooltip.lua:924
SetSocketGem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
shoppingTooltips =
{
}
updateTooltipTimer = 0.117000
SetLootCurrency = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetSlottedKeystone = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetWorldCursor = defined @Interface/FrameXML/GameTooltip.lua:943
SetLootItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
ItemTooltip = Frame {
}
GetUnit = defined @Interface/FrameXML/GameTooltip.lua:1001
SetOwnedItemByID = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
StatusBar = GameTooltipStatusBar {
}
SetQuestLogSpecialItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
AddLineDataText = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:186
SetVoidItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetRecipeReagentItem = defined =[C]:-1
SetQuestCurrency = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
TextRight1 = GameTooltipTextRight1 {
}
SetWeeklyReward = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetMerchantItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetMerchantCostItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetEnhancedConduit = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
BottomOverlay = Texture {
}
SetSpellByID = defined =[C]:-1
SetTradeTargetItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetSocketedRelic = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
ProcessInfo = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:107
ProcessLines = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:156
NineSlice = Frame {
}
SetInventoryItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
supportsItemComparison = true
supportsDataRefresh = true
SetLootRollItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetTransmogrifyItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetUnitDebuffByAuraInstanceID = defined =[C]:-1
SetBagItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
OnLoad = defined @Interface/FrameXML/GameTooltip.lua:916
SetAction = defined =[C]:-1
GetSpell = defined @Interface/FrameXML/GameTooltip.lua:992
SetItemInteractionItem = defined @Interface/SharedXML/Tooltip/TooltipDataHandler.lua:306
SetInventoryItemByID = defined @Interface/SharedXML/Too

commented

I think that it should be resolved, but I guess we'll see..

commented

I think that it should be resolved, but I guess we'll see..

It seems fixed after a quick test. I just tried spamming all the things that have ever caused errors, like the beta vendors or mousing over lots of people. Nothing broke it so far. The only test left to do that I know of is afk'ing for a while, after like 30mins the error usually triggered naturally on its own.

The new features still work too.

Two questions for ya:

Which git Branch is the main one to watch for updates? Or are you just updating them in sync from now on?

What in the world is a TraitNodeID? lol

commented

@ZINK-ZINK Master will only be used for release 'builds' and will automatically upload to curse when pushed to once I get that all setup.. Right now I'm just kind of keeping them both the same, but eventually beta will either not exist or be treated as an 'in-dev' branch, we'll see..

Traits are the new talent system, you'll need (at least now) the TraitNodeID to check if you've taken that 'talent' in the tree.

C_Traits.GetNodeInfo(C_ClassTalents.GetActiveConfigID(), nodeID)
commented

Ah I gotcha, so they're just the new version of "Spell Known" or using [talent:4/1] in a macro. Where do you find all that new (API?) info? All I find is website APIs or unofficial wikis when I look for them.

I've been logged in afk since I last posted and there's still no errors. I even just tried weird stuff like swiping over talents and vendors while in combat with full addons loaded, and there wasn't a single "Secure Function" error to be found.

Fingers crossed I'm not jinxing it, but I think this is a properly stable "release candidate" build that'd be safe to post on curseforge now.

commented

The easiest way to learn the new methods blizzard has added is to just read through the updated internal addons, I usually dump them myself to make sure they're up to date, but this is a good repo to follow that's mostly up to date too.

https://github.com/tomrus88/BlizzardInterfaceCode

I uploaded the most recent version to curseforge now too.

Going to close this issue however, you should be able to open a discussion if you want to ask any other questions or whatever, I don't mind helping people learn especially if that means improving this or other's projects :D

https://github.com/ItsJustMeChris/idTip-Community-Fork/discussions

commented

thanks for the super fast update I appreciate it <3, I'll check when servers are live again