Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

After looking in talent window a lot of skills are blocked #149

Closed
frozn opened this issue Dec 3, 2022 · 10 comments
Closed

After looking in talent window a lot of skills are blocked #149

frozn opened this issue Dec 3, 2022 · 10 comments
Labels
1_bug Something isn't working 2_to develop Development can begin 3_solved Issue is fixed

Comments

@frozn
Copy link
Owner

frozn commented Dec 3, 2022

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.

@frozn frozn added the 1_bug Something isn't working label Dec 3, 2022
@xathian
Copy link

xathian commented Dec 3, 2022

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

@eddym310
Copy link

eddym310 commented Dec 3, 2022

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.

@chrislockard
Copy link

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.

@BevansDesign
Copy link

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.

@JosefBud
Copy link

JosefBud commented Dec 23, 2022

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:

  1. 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)
  2. In your current talent tree, unassign 1 point and assign it elsewhere. Confirm changes.
  3. Assign it back to where you had it. Confirm changes.
  4. Switch to a different spec
  5. 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.

@JosefBud
Copy link

JosefBud commented Dec 23, 2022

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.

@Deusdictum
Copy link

I would like to add that only skills on Action Bar 1 are getting blocked for me.

@frozn
Copy link
Owner Author

frozn commented Dec 26, 2022

@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...

@Pheeve
Copy link

Pheeve commented Dec 29, 2022

awesome thank you!. this has been such a pain to deal with lol

@frozn
Copy link
Owner Author

frozn commented Jan 23, 2023

Should be fixed with latest release v23.01.23. Please try again with this version.

@frozn frozn added 2_to develop Development can begin 3_solved Issue is fixed labels Jan 23, 2023
@frozn frozn closed this as completed Mar 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1_bug Something isn't working 2_to develop Development can begin 3_solved Issue is fixed
Projects
None yet
Development

No branches or pull requests

8 participants