Topic
action blocked because of taint.. why
|
|
im kind of confused as to why my addon was being blocked. its a small addon that does a few things, none of which involve what i was trying to do, replace a glyph.
every time i tried to replace a glyph. it would confirm that it would take 1 dust to wipe out the old glyph, and after clicking that, it would do the cast animation and sound to apply the new glyph, but it never used up the dust or removed the old glyph. the taint log shows this: 12/23 02:33:37.050 An action was blocked because of taint from mymods - PlaceGlyphInSocket() 12/23 02:33:37.050 Interface\FrameXML\StaticPopup.lua:76 OnAccept() 12/23 02:33:37.050 Interface\FrameXML\StaticPopup.lua:3490 StaticPopup_OnClick() 12/23 02:33:37.050 StaticPopup1Button1:OnClick() 12/23 02:33:37.051 An action was blocked because of taint from mymods - PlaceGlyphInSocket() 12/23 02:33:37.051 Interface\FrameXML\StaticPopup.lua:76 OnAccept() 12/23 02:33:37.051 Interface\FrameXML\StaticPopup.lua:3490 StaticPopup_OnClick() 12/23 02:33:37.051 StaticPopup1Button1:OnClick() my addon only does like 4 things.. it puts all my chat windows where i want them on world_map_update (so i can hit m to position them), it plays the "work complete" sound when a quest is done, it puts timestamps in every window, and it moves the bag frame up so its not overtop of my ui. heres the code: local frame, events = CreateFrame("Frame"), {};im sure something in there is probably badly written, i havent had any trouble with it until now so i havent looked at it.. i really dont see how any of that could be tainting the glyph window though? |
|
Until recently, I haven't had any taint issues either. Just google "from a tainted execution path" WITH the quotes intact.
The consensus of the addon community (whether right or wrong) is that the issue is with some code from Blizz being tainted and hooking into that taints other code. The problem is ubiquitous and I'm getting errors all the time. Have to /reload ui until it happens again. So, it *might* not be your code. Also bear in mind the errors, at least from Swatter, are blaming random addons. Some of my errors below: *Here's a repeat of yours (and I don't have your addon :) ) Error: AddOn Auc-Advanced attempted to call a forbidden function (PlaceGlyphInSocket()) from a tainted execution path *Don't you hate it when Auctioneer cancels your buffs? Error: AddOn Auc-Advanced attempted to call a forbidden function (CancelUnitBuff()) from a tainted execution path. *I set /focus from the chat window, not OPie Error: AddOn OPie attempted to call a forbidden function (FocusUnit()) from a tainted execution path. *Umm...no. This is a macro, executed this time from an action button Error: AddOn ShadowedUnitFrames attempted to call a forbidden function (PlaceRaidMarker()) from a tainted execution path *Huh? Stubby you say? This time was using OPie to set raid marker Error: AddOn Stubby attempted to call a forbidden function (PlaceRaidMarker()) from a tainted execution path And now atlas loot. Error: AddOn AtlasLoot attempted to call a forbidden function (PlaceRaidMarker()) from a tainted execution path. So, well, enough said. |
|
Yeah. I think I've had errors for just about every addon listed. If it was just the Raid Markers, meh, wouldn't be horrible (although I love to use them), but it's other random things.
What's confusing (and I'm not a Lua programmer) is I thought all blizz code was considered untainted. If that's the case, how could a path from them cause the error? Anyone who understands this stuff, feel free to chime in. Is it possible that some common addon is causing the problem? Something like ACP that pretty much everyone with an addon has? Just questions and wild speculation. I don't know if this is an issue blizz has acknowledged or one the addon developers are assuming. It could be any addon tainting the path once, which would affect the rest...? Well, it gives me something to read about during lunch. |
I'm not really a LUA person myself, but a wild guess: It isn't that Blizzard's code can't have taint, it's that taint is supposed to be ignored when Blizzard code is running. |
|
|
Blizzard's code doesn't generate taint. But if Blizzard code picks up a tainted value that some add-on code handled, it will carry that taint until the current Lua event finishes being handled and returns to the main game engine. This is how add-on code is prevented to interfering in what functions like CastSpellByName do...if at any point on the way to doing something secure, Blizzard code has come into contact with a value modified by an add-on (with certain exceptions made under tight restrictions for things like custom action buttons), then that protected action will fail.
That said, I believe I have heard that there is an issue with some part of the code spreading taint it shouldn't have to, which means it will (we hope) be corrected in a future patch. |
