World of Warcraft

1 . 2 . 3 . 4
Blizzard Entertainment
View All Posts by This User ignore-inactive
Zootfizzle
Blizzard Poster
  • 0. Taint Issues - 3.0.2 and beyond!   10/23/2008 10:53:32 AM PDT
quote reply
Welcome to Echoes of Doom!

Patch 3.0.2 saw significant changes to many parts of the UI and its API, and along with these changes we have new possibilities for taint. If you get a message that states an "Interface action failed because of an AddOn", it means that an AddOn interfered with the Blizzard UI in some way.

Please check for updated addons - the problem you experienced may already have been solved!

If the problem still happens after updating your addons, you can diagnose what's going on and let the author know:

To diagnose this, enter the following into chat "/console taintLog 1" and restart the game and try to reproduce it. If you reproduce it, you can quit the game and search through the file Logs\taint.log for the word "blocked". Once you have done this you can turn off logging by entering the following into chat "/console taintLog 0".

Please use this thread to post links to your taint.log file if you get this message.

You'll only get the "blocked" messages in combat, so the easiest way to test this is to go to a low level zone and let a weak creature attack you while you do things involving targeting, group changes, pet changes, etc.

Remember, taint by itself is fine, it only becomes a problem if it results in a "blocked" message.

Thanks!

[ Post edited by Zootfizzle ]


A sprocket here, a sprocket there, and soon there's sprockets everywhere!
Blizzard Entertainment
View All Posts by This User ignore-inactive
Zootfizzle
Blizzard Poster
  • 1. Re: Taint Issues - 3.0.2 and beyond!   10/23/2008 10:53:51 AM PDT
quote reply
Fixed for 3.0.8
  • Addons that use the built-in UIDropDownMenu system should no longer cause Focus related options in Unit DropDowns to stop functioning.

  • QuestLogFrame replacements should no longer interfere with SpellBookFrame_OnHide

  • Many overachieving variables are not quite as global as they used to be, including:
    • self - Blizzard_RaidUI.xml line 1222
    • powerTypeString - Blizzard_CombatLog.lua line 3046
    • frame - ContainerFrame.lua line 95
    • enabled - BonusActionBarFrame.lua line 284
    • point - Blizzard_CombatLog.lua line 3440
    • finaloffset - MainMenuBar.lua line 20 etc.

Known Issues
  • Successive calls to OpenCalendarEvent result in Interface Action Blocked messages.

[ Post edited by Zootfizzle ]

70
View All Posts by This User Toggle Ignore / Unignore This User
  • Spinebreaker
  • 2. Re: Taint Issues - 3.0.2 and beyond!   10/24/2008 01:45:09 PM PDT
quote reply

Q u o t e:
Known Issues
  • Addons that use the built-in UIDropDownMenu system can cause Focus related options in Unit DropDowns to stop functioning.



any way to solve this issue?
70
View All Posts by This User Toggle Ignore / Unignore This User
  • Spinebreaker
  • 3. Re: Taint Issues - 3.0.2 and beyond!   10/24/2008 01:59:51 PM PDT
quote reply
10/25 07:27:24.078 Execution tainted by XPerl while reading XPerl_DropDown - getglobal()
10/25 07:27:24.078 Interface\FrameXML\UnitPopup.lua:997 func()
10/25 07:27:24.078 Interface\FrameXML\UIDropDownMenu.lua:568 UIDropDownMenuButton_OnClick()
10/25 07:27:24.078 DropDownList1Button2:OnClick()
10/25 07:27:24.078 An action was blocked because of taint from XPerl - FocusUnit()
10/25 07:27:24.078 Interface\FrameXML\UnitPopup.lua:1181 func()
10/25 07:27:24.078 Interface\FrameXML\UIDropDownMenu.lua:568 UIDropDownMenuButton_OnClick()
10/25 07:27:24.078 DropDownList1Button2:OnClick()
70
View All Posts by This User Toggle Ignore / Unignore This User
  • 4. Re: Taint Issues - 3.0.2 and beyond!   10/24/2008 08:36:10 PM PDT
quote reply
Usually "known issue" means they're working on solving it
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 5. Re: Taint Issues - 3.0.2 and beyond!   10/24/2008 09:17:21 PM PDT
quote reply
10/21 00:24:17.569 Global variable UIDROPDOWNMENU_MENU_LEVEL tainted by TankPoints - Interface\FrameXML\UIDropDownMenu.lua:26 UIDropDownMenu_Initialize()
10/21 00:24:17.569 Interface\FrameXML\LFGFrame.lua:271 LFMFrame_Update()
10/21 00:24:17.569 Interface\FrameXML\LFGFrame.lua:152 LFMFrame_OnEvent()
10/21 00:24:17.569 LFMFrame:OnEvent()
10/21 00:24:17.569 Execution tainted by TankPoints while reading UIDROPDOWNMENU_MENU_LEVEL - Interface\FrameXML\UIDropDownMenu.lua:407 UIDropDownMenu_Refresh()
10/21 00:24:17.569 Interface\FrameXML\UIDropDownMenu.lua:511 UIDropDownMenu_SetSelectedID()
10/21 00:24:17.569 Interface\FrameXML\LFGFrame.lua:279 LFMFrame_Update()
10/21 00:24:17.569 Interface\FrameXML\LFGFrame.lua:156 LFMFrame_OnEvent()
10/21 00:24:17.569 LFMFrame:OnEvent()
10/21 00:24:17.569 An action was blocked because of taint from TankPoints - LFGQuery()
10/21 00:24:17.569 Interface\FrameXML\LFGFrame.lua:478 SendLFGQuery()
10/21 00:24:17.569 Interface\FrameXML\LFGFrame.lua:157 LFMFrame_OnEvent()
10/21 00:24:17.569 LFMFrame:OnEvent()
10/21 00:24:17.572 An action was blocked because of taint from TankPoints - LFGQuery()
10/21 00:24:17.572 Interface\FrameXML\LFGFrame.lua:478 SendLFGQuery()
10/21 00:24:17.572 Interface\FrameXML\LFGFrame.lua:28 LFGParentFrame_OnEvent()
10/21 00:24:17.572 LFGParentFrame:OnEvent()


http://www.wowinterface.com/list.php?skinnerid=28611
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 6. Re: Taint Issues - 3.0.2 and beyond!   10/27/2008 01:34:48 AM PDT
quote reply
Posting this for Mikk who doesn't have a US account. I couldn't make much sense out of it either so I figure its an internal issue that only you guys can fully investigate.


Q u o t e:
Very weird tainting problem

Assume:
1) I want an "/rc" alias for "/readycheck"
2) I run this in combat


So, there's three ways of doing it, assuming SLASH_RCALIAS1 = "/rc"

A) SlashCmdList["RCALIAS"] = function(...) SlashCmdList["READYCHECK"](...) end
B) SlashCmdList["RCALIAS"] = function() DoReadyCheck() end
C) SlashCmdList["RCALIAS"] = SlashCmdList["READYCHECK"]

A and B both work. C causes all sorts of errors, like

10/24 19:36:57.125 An action was blocked in combat because of taint from ReadyCheckAnnouncer - RaidGroup1:Show()
10/24 19:36:57.125 Interface\AddOns\Blizzard_RaidUI\Blizzard_RaidUI.lua:228 RaidGroupFrame_Update()
10/24 19:36:57.125 Interface\FrameXML\RaidFrame.lua:81 RaidFrame_Update()
10/24 19:36:57.125 Interface\FrameXML\RaidFrame.lua:37 RaidFrame_OnEvent()
10/24 19:36:57.125 Interface\AddOns\Blizzard_RaidUI\Blizzard_RaidUI.lua:154


This makes no sense whatsoever. What gives?


=Arrowmaster
80
View All Posts by This User Toggle Ignore / Unignore This User
  • Blackrock
  • 7. Re: Taint Issues - 3.0.2 and beyond!   10/27/2008 09:18:52 PM PDT
quote reply

Q u o t e:
Posting this for Mikk who doesn't have a US account. I couldn't make much sense out of it either so I figure its an internal issue that only you guys can fully investigate.



I investigated this, it turns out that line 1222 of Blizzard_RaidUI.xml contains this

	<Script>

RaidGroupFrame_OnLoad(self);
</Script>


Notice that it is a <Script> tag, and not a <Scripts> tag containing OnFoo scripts, which means the script gets loaded and executed immediately, much like the <Script file="Blizzard_RaidUI.lua"/> tag on line 3. This script has no wrapper, and is hence referencing the global "self" variable.

Mikk's addon ReadyCheckAnnouncer tainted "self" on line 74:

10/28 10:18:46.865 Global variable self tainted by ReadyCheckAnnouncer - Interface\AddOns\ReadyCheckAnnouncer\ReadyCheckAnnouncer.lua:74

And subsequently:

10/28 10:19:23.521 Execution tainted by ReadyCheckAnnouncer while reading self - Interface\AddOns\Blizzard_RaidUI\Blizzard_RaidUI.xml:<Scripts>:1
10/28 10:19:23.521 LoadAddOn()
10/28 10:19:23.521 Interface\FrameXML\UIParent.lua:991 UIParentLoadAddOn()
10/28 10:19:23.521 Interface\FrameXML\UIParent.lua:264 RaidFrame_LoadUI()
10/28 10:19:23.521 Interface\FrameXML\RaidFrame.lua:36 RaidFrame_OnEvent()
10/28 10:19:23.521 RaidFrame:OnEvent()

The function RaidGroupFrame_OnLoad() then ran tainted, and the scripts that were set in this function for RaidFrame subsequently became tainted.

--------------

While the fix is simply not to taint the global variable "self", that line 1222 in Blizzard_RaidUI.xml should not be referencing it either.

[ Post edited by Xinhuan ]


Author/Maintainer of Postal, Omen3, GemHelper, BankItems, WoWEquip, GatherMate, Routes, HandyNotes and a few others.
80
View All Posts by This User Toggle Ignore / Unignore This User
  • Blackrock
  • 8. Re: Taint Issues - 3.0.2 and beyond!   10/27/2008 09:21:37 PM PDT
quote reply
In Blizzard_CombatLog.lua, the variable "powerTypeString" in function "CombatLog_OnEvent" references the global "powerTypeString", reading and writing to it because it is not local. While it doesn't cause any real harm, it should probably be fixed by declaring the variable local to the function.

Author/Maintainer of Postal, Omen3, GemHelper, BankItems, WoWEquip, GatherMate, Routes, HandyNotes and a few others.
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 9. Re: Taint Issues - 3.0.2 and beyond!   10/28/2008 12:33:32 AM PDT
quote reply

Q u o t e:
10/21 00:24:17.569 Global variable UIDROPDOWNMENU_MENU_LEVEL tainted by TankPoints - Interface\FrameXML\UIDropDownMenu.lua:26 UIDropDownMenu_Initialize()
10/21 00:24:17.569 Interface\FrameXML\LFGFrame.lua:271 LFMFrame_Update()
10/21 00:24:17.569 Interface\FrameXML\LFGFrame.lua:152 LFMFrame_OnEvent()
10/21 00:24:17.569 LFMFrame:OnEvent()
10/21 00:24:17.569 Execution tainted by TankPoints while reading UIDROPDOWNMENU_MENU_LEVEL - Interface\FrameXML\UIDropDownMenu.lua:407 UIDropDownMenu_Refresh()
10/21 00:24:17.569 Interface\FrameXML\UIDropDownMenu.lua:511 UIDropDownMenu_SetSelectedID()
10/21 00:24:17.569 Interface\FrameXML\LFGFrame.lua:279 LFMFrame_Update()
10/21 00:24:17.569 Interface\FrameXML\LFGFrame.lua:156 LFMFrame_OnEvent()
10/21 00:24:17.569 LFMFrame:OnEvent()
10/21 00:24:17.569 An action was blocked because of taint from TankPoints - LFGQuery()
10/21 00:24:17.569 Interface\FrameXML\LFGFrame.lua:478 SendLFGQuery()
10/21 00:24:17.569 Interface\FrameXML\LFGFrame.lua:157 LFMFrame_OnEvent()
10/21 00:24:17.569 LFMFrame:OnEvent()
10/21 00:24:17.572 An action was blocked because of taint from TankPoints - LFGQuery()
10/21 00:24:17.572 Interface\FrameXML\LFGFrame.lua:478 SendLFGQuery()
10/21 00:24:17.572 Interface\FrameXML\LFGFrame.lua:28 LFGParentFrame_OnEvent()
10/21 00:24:17.572 LFGParentFrame:OnEvent()



Has this been fixed for 3.0.3? It's not involving anything to do with focus-related actions; it's just a drop-down menu which then starts spreading taint everywhere. (In this case, a player joining a group while the group is in the LFG tool will cause ADDON_ACTION_BLOCKED even while not in combat.)


Onen i estel úben,
Ú-chebin estel anim.
80
View All Posts by This User Toggle Ignore / Unignore This User
  • Khaz'goroth
  • 10. Re: Taint Issues - 3.0.2 and beyond!   10/28/2008 09:36:14 PM PDT
quote reply
is there something really simple i can add to my mod that will 100% *cause* taint?

why? i've added the taint log option but i'm not seeing a taint log file turn up and i wanted to make sure it was working properly for me.
80
View All Posts by This User Toggle Ignore / Unignore This User
  • Khaz'goroth
  • 11. Re: Taint Issues - 3.0.2 and beyond!   10/30/2008 06:02:04 AM PDT
quote reply
setting the focus while in combat via targeting someone and doing a /focus - at least i think thats what i was doing at the time, servers are down for maint so i can't double check.

10/30 16:04:48.894  An action was blocked in combat because of taint from Dominos - DominosClassButton1:SetAttribute()

10/30 16:04:48.894 Interface\AddOns\Dominos\classBar.lua:241 DominosClassButton1:UpdateSpell()
10/30 16:04:48.894 Interface\AddOns\Dominos\classBar.lua:351
10/30 16:04:48.894 An action was blocked in combat because of taint from Dominos - DominosClassButton1:Show()
10/30 16:04:48.894 Interface\AddOns\Dominos\classBar.lua:353
10/30 16:04:48.894 An action was blocked in combat because of taint from Dominos - DominosClassButton1:ClearAllPoints()
10/30 16:04:48.894 Interface\AddOns\Dominos\frame.lua:535 <unnamed>:Layout()
10/30 16:04:48.894 Interface\AddOns\Dominos\frame.lua:435 <unnamed>:SetNumButtons()
10/30 16:04:48.894 Interface\AddOns\Dominos\classBar.lua:357
10/30 16:04:48.894 An action was blocked in combat because of taint from Dominos - DominosClassButton1:SetPoint()
10/30 16:04:48.894 Interface\AddOns\Dominos\frame.lua:537 <unnamed>:Layout()
10/30 16:04:48.894 Interface\AddOns\Dominos\frame.lua:435 <unnamed>:SetNumButtons()
10/30 16:04:48.894 Interface\AddOns\Dominos\classBar.lua:357
10/30 16:04:48.894 An action was blocked in combat because of taint from Dominos - <unnamed>:SetWidth()
10/30 16:04:48.894 Interface\AddOns\Dominos\frame.lua:557 <unnamed>:Layout()
10/30 16:04:48.894 Interface\AddOns\Dominos\frame.lua:435 <unnamed>:SetNumButtons()
10/30 16:04:48.894 Interface\AddOns\Dominos\classBar.lua:357
10/30 16:04:48.894 An action was blocked in combat because of taint from Dominos - <unnamed>:SetHeight()
10/30 16:04:48.894 Interface\AddOns\Dominos\frame.lua:559 <unnamed>:Layout()
10/30 16:04:48.894 Interface\AddOns\Dominos\frame.lua:435 <unnamed>:SetNumButtons()
10/30 16:04:48.894 Interface\AddOns\Dominos\classBar.lua:357
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 12. Re: Taint Issues - 3.0.2 and beyond!   10/30/2008 10:11:45 PM PDT
quote reply
The dropdown taint issue has existed since 2.0.1 when the function to dismiss a pet was protected. Their solution was to unprotect the function to dismiss a pet, but obviously that solution won't work this time.

The actual cause is that the dropdown templates create more frames as needed if its told to make a dropdown with more options than what it starts with by default. If a part of the protected blizzard UI tries to create a really huge dropdown before any addons do then you wouldn't see the taint issue since all the frames making up the dropdown were created by secure blizzard code and thus secure themselves. But if an addon tries to make a really huge dropdown then all those frames are created by insecure code and thus tainted.

In 2.x the problem of the taint spreading was so bad that the target frame wouldn't be shown if you started combat without a target selected. But they moved function calls around to prevent that from happening.

=Arrowmaster
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 15. Re: Taint Issues - 3.0.2 and beyond!   10/31/2008 10:20:32 PM PDT
quote reply
This has gotten badly off-track, but anyhow:


Q u o t e:
Ctraid was updated to work again with WoW. But it produces more taint than any mod that I know of. Can any of this be fixed easily?


No. The CTRA code is so old, and the API/environment has changed so much since the time it was written, that fixing it is more effort than it's worth. I finally gave up on it and found a new unitframes package.

I'm not Cide, and who knows, a fresh CTRA may be just around the corner, I can't say. But IMO, we should respect it for what it was, and move on.

Onen i estel úben,
Ú-chebin estel anim.
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 16. Re: Taint Issues - 3.0.2 and beyond!   10/31/2008 10:28:30 PM PDT
quote reply
Well someone went thru the trouble to get it to work with WoW today. So I assume that person will continue to fix the issues.

But CTraid always caused taint back when 2.0 first came out.
80
View All Posts by This User Toggle Ignore / Unignore This User
  • 18. Re: Taint Issues - 3.0.2 and beyond!   11/01/2008 11:05:25 AM PDT
quote reply
This is a bug dealing with empty action slots not disapearing after closing of the spellbook due to
taint.

Looks like this was fixed, but somehow the fix isn't working anymore. The actual line of code
causing taint "setglobal("QuestLogFrame", QuestGuru_QuestLogFrame);". Questguru triggers the taint.
But I dont think the mod is at fault. But I feel the bug is related to the taint spreading into the spellbook frame
somehow in the first place. Link to the added found here http://wowui.worldofwar.net/?p=mod&m=4855

Taint trace
10/31 18:21:19.309 Global variable QuestLogFrame tainted by QuestGuru - setglobal()
10/31 18:21:19.309 Interface\AddOns\QuestGuru\QuestGuru.lua:619 QuestLog_OnLoad()
10/31 18:21:19.309 QuestGuru_QuestLogFrame:OnLoad()
10/31 18:21:19.309 Execution tainted by QuestGuru while reading QuestLogFrame - Interface\FrameXML\MainMenuBarMicroButtons.lua:41 UpdateMicroButtons()
10/31 18:21:19.309 GameMenuFrame:OnShow()
10/31 18:21:19.309 GameMenuFrame:Show()
10/31 18:21:19.309 Interface\FrameXML\UIParent.lua:1417 <unnamed>:SetUIPanel()
10/31 18:21:19.309 Interface\FrameXML\UIParent.lua:1223 <unnamed>:ShowUIPanel()
10/31 18:21:19.309 Interface\FrameXML\UIParent.lua:1155
10/31 18:21:19.309 <unnamed>:SetAttribute()
10/31 18:21:19.309 Interface\FrameXML\UIParent.lua:1766 ShowUIPanel()
10/31 18:21:19.309 Interface\FrameXML\UIParent.lua:2579 ToggleGameMenu()
10/31 18:21:19.309 TOGGLEGAMEMENU:1
10/31 18:21:19.309 An action was blocked in combat because of taint from QuestGuru - VoiceChatTalkers:Hide()
10/31 18:21:19.309 Interface\FrameXML\VoiceChat.lua:238 VoiceChat_Toggle()
10/31 18:21:19.309 GameMenuFrame:OnShow()
10/31 18:21:19.309 GameMenuFrame:Show()
10/31 18:21:19.309 Interface\FrameXML\UIParent.lua:1417 <unnamed>:SetUIPanel()
10/31 18:21:19.309 Interface\FrameXML\UIParent.lua:1223 <unnamed>:ShowUIPanel()
10/31 18:21:19.309 Interface\FrameXML\UIParent.lua:1155
10/31 18:21:19.309 <unnamed>:SetAttribute()
10/31 18:21:19.309 Interface\FrameXML\UIParent.lua:1766 ShowUIPanel()
10/31 18:21:19.309 Interface\FrameXML\UIParent.lua:2579 ToggleGameMenu()
10/31 18:21:19.309 TOGGLEGAMEMENU:1


http://code.google.com/p/wowdiff/source/browse/trunk/FrameXML/SpellBookFrame.lua?spec=svn131&r=131

function SpellBookFrame_OnShow(self)
SpellBookFrame_Update(1);

-- If there are tabs waiting to flash, then flash them... yeah..
if ( self.flashTabs ) then
UIFrameFlash(SpellBookTabFlashFrame, 0.5, 0.5, 30, nil);
end

-- Show multibar slots
MultiActionBar_ShowAllGrids();
UpdateMicroButtons();

SpellBookFrame_PlayOpenSound();
end


The blue post by Slouken states that this would be fixed to reduce tainting issues. Dated 10/29/2007
Also check the post before Sloukens, its talking about the same exact bug that happens now.
http://forums.worldofwarcraft.com/thread.html?topicId=2518903044&postId=25734141828&sid=1#20

This is fixed for 2.3 release, thanks!

From the engineer:
Moving UpdateMicroButtons to the end of SpellBookFrame_OnShow fixed the problem, as it was tainting SpellBookFrame_Update.

[ Post edited by Galvin ]

70
View All Posts by This User Toggle Ignore / Unignore This User
  • Anvilmar
  • 19. Re: Taint Issues - 3.0.2 and beyond!   11/02/2008 09:46:07 AM PST
quote reply
Thank you Galvin for helping to bring this issue up again. I tried during the last PTR but my posts kept getting buried within moments.

I'm actually the author of QuestGuru, but I don't think this issue is specific to my addon, rather to any addon that does what mine does, which is replace a built-in frame (in this case, the quest log frame). The code that Galvin referenced fixed the issue of people being able to use spells and abilities from the spellbook, but the other, similar issue is that empty action bar slots remain open after the spellbook is closed. Here is the Blizzard code (build 9125 from wowcompares.com):

function SpellBookFrame_OnHide(self)
SpellBookFrame_PlayCloseSound();

UpdateMicroButtons();

-- Stop the flash frame from flashing if its still flashing.. flash flash flash
UIFrameFlashRemoveFrame(SpellBookTabFlashFrame);
-- Hide all the flashing textures
for i=1, MAX_SKILLLINE_TABS do
getglobal("SpellBookSkillLineTab"..i.."Flash"):Hide();
end

-- Hide multibar slots
MultiActionBar_HideAllGrids();
end


All that would need to be done is to move the call to UpdateMicroButtons after the call to MultiActionBar_HideAllGrids, which is basically what was done in the OnShow function.
1 . 2 . 3 . 4
Forum Nav : Jump To This Forum
Blizzard Entertainment