After looking in talent window a lot of skills are blocked
frozn opened this issue ยท 10 comments
Source: https://www.curseforge.com/wow/addons/tiptac-reborn?comment=98
Hermonii:
Each time i take a look into the talent window i'll get the error that block lot of skills (if isnt all skills ?) during battle.
That's really anoying and make this add unusable.After few test it was always after looking my talents.
Praesti:
This is the error I'm getting too. Every now and then I'm blocked from using a skill or an ability during combat.
im able to reproduce it by opening my talents, mousing over a node with a choice of two talents, then either shifting into a druid form or mounting a dragonriding mount, both of which replaces my main action bar. then every time i attempt to use an ability on that action bar, it throws the error. i can use any button that isnt on that bar.
Thank god someone figured out what is triggering this. Been a HUGE issue for me, crops up a lot when I am flying so this makes sense since I frequently accidentally press N when trying to open my map. Never put 2 and 2 together that this was the cause for it happening. I hope this gets fixed soon
I've also been getting this error on any character. The most often way to trigger it is to open the talent window and (re)assign talent points. Within a couple of minutes, at random (seemingly), this error will pop up.
I get this problem all the time, and it's pretty annoying to have to reload the whole UI in the middle of combat or while dragonriding or something.
I continued on to learn how to log addon taints, and got these results in the taint log:
12/23 13:18:03.484 Global variable ON_BAR_HIGHLIGHT_MARKS tainted by TipTac - Interface/FrameXML/ActionButton.lua:67 ClearOnBarHighlightMarks()
12/23 13:18:03.484 Interface/AddOns/Blizzard_ClassTalentUI/Blizzard_ClassTalentButtonTemplates.lua:30 Button:ShowActionBarHighlights()
12/23 13:18:03.484 Interface/AddOns/Blizzard_ClassTalentUI/Blizzard_ClassTalentButtonTemplates.lua:158 Button:OnEnter()
12/23 13:18:03.484 Interface/AddOns/Blizzard_SharedTalentUI/Blizzard_SharedTalentButtonTemplates.lua:303 Button:UpdateMouseOverInfo()
12/23 13:18:03.484 Interface/AddOns/Blizzard_SharedTalentUI/Blizzard_SharedTalentButtonTemplates.lua:168 UpdateVisualState()
12/23 13:18:03.484 Interface/AddOns/Blizzard_SharedTalentUI/Blizzard_SharedTalentButtonTemplates.lua:483 Button:UpdateVisualState()
12/23 13:18:03.484 Interface/AddOns/Blizzard_SharedTalentUI/Blizzard_SharedTalentButtonTemplates.lua:172 FullUpdate()
12/23 13:18:03.484 Interface/AddOns/Blizzard_SharedTalentUI/Blizzard_SharedTalentButtonTemplates.lua:461 FullUpdate()
12/23 13:18:03.484 Interface/AddOns/Blizzard_ClassTalentUI/Blizzard_ClassTalentButtonTemplates.lua:134 Button:FullUpdate()
12/23 13:18:03.484 Interface/AddOns/Blizzard_SharedTalentUI/Blizzard_SharedTalentButtonTemplates.lua:112 Button:UpdateDefinitionInfo()
12/23 13:18:03.484 Interface/AddOns/Blizzard_SharedTalentUI/Blizzard_SharedTalentButtonTemplates.lua:104 Button:SetDefinitionID()
12/23 13:18:03.484 Interface/AddOns/Blizzard_SharedTalentUI/Blizzard_SharedTalentButtonTemplates.lua:390 UpdateEntryInfo()
12/23 13:18:03.484 Interface/AddOns/Blizzard_ClassTalentUI/Blizzard_ClassTalentButtonTemplates.lua:122 Button:UpdateEntryInfo()
12/23 13:18:03.484 Interface/AddOns/Blizzard_SharedTalentUI/Blizzard_SharedTalentButtonTemplates.lua:120 Button:SetEntryID()
12/23 13:18:03.484 Interface/AddOns/Blizzard_SharedTalentUI/Blizzard_SharedTalentButtonTemplates.lua:405 updateMethod()
12/23 13:18:03.484 Interface/AddOns/Blizzard_SharedTalentUI/Blizzard_SharedTalentFrame.lua:233 OnUpdate()
12/23 13:18:03.484 Interface/AddOns/Blizzard_ClassTalentUI/Blizzard_ClassTalentTalentsTab.lua:97
12/23 13:18:03.484 Execution tainted by TipTac while reading ON_BAR_HIGHLIGHT_MARKS - Interface/FrameXML/ActionButton.lua:71 GetOnBarHighlightMark()
12/23 13:18:03.484 Interface/FrameXML/ActionButton.lua:486 MultiBarLeftButton8:UpdateSpellHighlightMark()
12/23 13:18:03.484 Interface/FrameXML/ActionButton.lua:392 MultiBarLeftButton8:Update()
12/23 13:18:03.484 Interface/FrameXML/ActionButton.lua:910 MultiBarLeftButton8:OnEvent()
12/23 13:18:03.484 Interface/FrameXML/ActionButton.lua:264
12/23 13:18:03.484 Interface/FrameXML/ActionButton.lua:1071 UpdateFlyout()
12/23 13:18:03.484 An action was blocked because of taint from TipTac - UseAction()
12/23 13:18:03.484 Interface/FrameXML/SecureTemplates.lua:364 handler()
12/23 13:18:03.484 Interface/FrameXML/SecureTemplates.lua:690 PerformAction()
12/23 13:18:03.484 Interface/FrameXML/SecureTemplates.lua:704 OnActionButtonClick()
12/23 13:18:03.484 Interface/FrameXML/SecureTemplates.lua:746 SecureActionButton_OnClick()
12/23 13:18:03.484 Interface/FrameXML/ActionButton.lua:109 TryUseActionButton()
12/23 13:18:03.484 Interface/FrameXML/ActionButton.lua:157 ActionButtonUp()
12/23 13:18:03.484 ACTIONBUTTON2:4
Through sheer luck and a lot of time spent reloading the UI and narrowing it down, I've found that removing these lines fixes the issue. Something is tainting a global variable when tip.NineSlice.SetCenterColor
is reassigned. And it's the reassignment itself that seems to cause the issue; if you only remove the code inside of the function it will still cause an error.
Again, I'm unfamiliar with the WoW API so I'm not sure of the ramifications of removing this reassignment or why it fixes the issue.
tip.NineSlice.SetCenterColor = function(self, ...)
if (self:GetParent().ttSetBackdropColorLocked) then
return;
end
if (tip_NineSlice_SetCenterColor_org) then
tip_NineSlice_SetCenterColor_org(self, ...);
end
end
EDIT: This fixed the issue for me under my recreation steps but it doesn't seem fixed when caused by different steps. I've had the error pop up a couple times since but I'm not sure what it has been caused by.
I started looking at this as this keeps popping up for me and I thought I could possibly help by submitting a fix PR. I'm a software engineer but I'm not familiar at all with WoW's API so take everything I say with a grain of salt!
Exact steps to reproduce:
- Put an action on button 2 that will fail (i.e. an attack but you don't have an enemy targeted, the action will fail/not be cast)
- In your current talent tree, unassign 1 point and assign it elsewhere. Confirm changes.
- Assign it back to where you had it. Confirm changes.
- Switch to a different spec
- Press button 2 using your keyboard, not your mouse
This also works for buttons 3, 4, and 5. Not button 1.
Here is the trace from BugSack:
4x [ADDON_ACTION_FORBIDDEN] AddOn 'TipTac' tried to call the protected function 'UseAction()'.
[string "@!BugGrabber/BugGrabber.lua"]:480: in function <!BugGrabber/BugGrabber.lua:480>
[string "=[C]"]: in function `UseAction'
[string "@FrameXML/SecureTemplates.lua"]:364: in function `handler'
[string "@FrameXML/SecureTemplates.lua"]:690: in function <FrameXML/SecureTemplates.lua:672>
[string "@FrameXML/SecureTemplates.lua"]:704: in function <FrameXML/SecureTemplates.lua:697>
[string "@FrameXML/SecureTemplates.lua"]:746: in function `SecureActionButton_OnClick'
[string "@FrameXML/ActionButton.lua"]:109: in function `TryUseActionButton'
[string "@FrameXML/ActionButton.lua"]:157: in function `ActionButtonUp'
[string "ACTIONBUTTON2"]:4: in function <[string "ACTIONBUTTON2"]:1>
As far as I can tell from searching through the codebase, TipTac doesn't use UseAction()
or any action bar functions/events for that matter. From a cursory Google search, it seems this isn't the only time this has popped up since Dragonflight released. It may be an instance of addon taint? At this point I'm wondering if this is a bug in WoW's API rather than TipTac.
I would like to add that only skills on Action Bar 1 are getting blocked for me.
@JosefBud:
Thank you for digging deeper into it! ๐ Unfortunately I didn't see this errors in the past for myself, but I suspected these function overrides to be the cause for the start of taint.
Currently I'm completely rewriting the lua files regarding "ttCore.lua" replacing the locking system (implemented with function overrides) with post-hooks (via hooksecurefunc). But this will still need some time...
Should be fixed with latest release v23.01.23. Please try again with this version.