The Big Taint thread
Since many of the addons suffer from taints, and it's very hard to track some of them, i tought it would be a good idea to make a thread to create the list of the most common taints, and how to avoid them.
If any of you have more usefull information from any of the existing taints, i would like to ask you to share it in this thread. Dropdown taint Error Message: [ADDON_ACTION_BLOCKED] AddOn "AddonName" tried to call the protected function "CompactRaidFrame1-8:Show()". Caused by: This taint happens when you use Blizzard's built in dropdown menu templates from the UIDropDownMenu.lua, UIDropDownMenuTemplates.xml and EasyMenu.lua. The taint sooner or later will spread to the CompactRaidFrames, because it's using the same templates when you right click on raid members. Additionally it can also infect the Battleground dropdown queues, making it impossible to queue to battlegrounds. Spread by: UIDropDownMenu_SetSelectedName, UIDropDownMenu_SetSelectedValue, UIDropDownMenu_SetSelectedID calls. Fix: Use NoTaint UIDropDownMenu instead of the Blizzard ones, or use your own customly created dropdowns. ActionButton taint Error Message: [ADDON_ACTION_BLOCKED] AddOn 'AddonName' tried to call the protected function 'ActionButton1-12:Show()'. Caused by: It's pretty similar to the dropdown taint, mostly spread by using templates from ActionBarFrame.xml, ActionButton.lua and ActionButtonTemplate.xml. Also can be caused by ActionButton_ShowOverlayGlow and ActionButton_HideOverlayGlow API calls. Spread by: ActionButton_ShowOverlayGlow, ActionButton_HideOverlayGlow calls. Fix: I have a half-fix notaint template lib coming for this soon. More coming soon... |
Reserved for the future.
|
See if you can make any sense out of this one:
Code:
8/22 20:29:10.594 Interface\FrameXML\WatchFrame.lua:328 This happened before 6.0 though. |
You can't call SetScale on a nameplate in combat because they're protected unit frames, I don't know what that has to do with the watchframe though.
|
Quote:
|
Quote:
|
Quote:
Might not be relevant any more, but it still boggled me when I encountered it. |
Quote:
I'm not using any of the templates and I'm not messing with ActionButton_* but still encounter that error most of the time upon engaging combat or shortly after combat ends (but not every time - it's hard to debug where it comes from, I have absolutely no idea yet because everything works as expected). |
Code:
/console taintLog 1 Going through this file (logs/taint.log) you'll see the order in which taints are happening and where. If you're still not happy with that switch it to verbose mode Code:
/console taintLog 2 Code:
/console taintLog 0 Its a painful process digging through a gigabyte logfile ... ;) |
Quote:
Thanks but the taintLog doesn't help because it doesn't tell me where the error occurs in my addon, only where it happens in Blizzard's code? Code:
4/23 23:37:50.364 An action was blocked in combat because of taint from sUI - ActionButton9:Show() |
Taint means "user code touched this" which then taints the rest of that codepath. You didn't touch the action buttons directly, but you (or someone else - the taint reporting isn't always foolproof) tainted part of the Blizzard code which at some point calls the action button code. That's why there's a stack track in the "action blocked" report; you trace back and hopefully discover where things went pear-shaped.
|
Quote:
|
Quote:
|
Quote:
|
/console taintLog 11
;) (Note: this is only available on test servers, and will FLOOD your log.) |
Thanks for your help, my issue seems to be fixed, took me 8 hours of testing, guessing and goggleing (is that an english word?) :/
The thing is, I don't know what exactly caused it. I've been using my own UI since 2008 and there is a lot of code from back then. I only changed/updated everything that appeared in the taint log that looked like it could lead to errors (like directly replacing blizzard functions with my own, not checking for InCombatLockdown() and stuff like that) and also changed some variables that were accidentially declared as globals. Quote:
Quote:
Well, I'm happy it's gone and I hope it stays like that. The good thing is I switched to using Git 2 years ago, so whenever it occurs again, it should be easy to track down #beingoptimistic. PS: Sorry for my crappy english. :cool: |
I usually don't necro threads, but as it just ate about 2 hours of debugging, i'm happy to say that ActionButton_GetOverlayGlow also causes Actionbutton taint, as it seems to create a new overlay frame, which i wasn't aware of.
For me, it just occured when hovering a spell in my spellbook while in combat. |
All times are GMT -6. The time now is 08:20 AM. |
vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI