WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   AddOn Help/Support (https://www.wowinterface.com/forums/forumdisplay.php?f=3)
-   -   Strange addon blocked from an action error (https://www.wowinterface.com/forums/showthread.php?t=57702)

bsmorgan 11-25-19 08:48 AM

Strange addon blocked from an action error
 
I am the maintainer/author of Skillet and I have a strange error that I can't figure out. If I open and close professions with Spellbook buttons or action bar buttons everything works as expected.

However, The Skillet frame contains its own set of profession buttons. If I use those profession buttons to change professions the changing to Engineering, Jewelcrafting, Leatherworking, and Inscription causes a popup:

"Skillet has been blocked from an action only
available to the Blizzard UI.
You can disable this addon and reload the UI."

Using the Skillet frame profession buttons to switch from those professions to (or between) Cooking, Mining/Smelting works and Blacksmithing, Alchemy, and Enchanting all work without error.

The taint.log when it fails contains:

11/25 06:55:43.823 An action was blocked because of taint from Skillet - CastSpellByName()
11/25 06:55:43.823 Interface\AddOns\Skillet\Skillet.lua:1091 ChangeTradeSkill()
11/25 06:55:43.823 Interface\AddOns\Skillet\Skillet.lua:1143 SetTradeSkill()
11/25 06:55:43.823 Interface\AddOns\Skillet\UI\MainFrame.lua:599 TradeButton_OnClick()
11/25 06:55:43.823 SkilletFrameTradeButton-Amarik-25229:OnClick()

Now for the strange part. If I am in Boralus and take a port to Stormwind, all the above tradeskills now switch without error. If I port back to Boralus, they continue to switch without error.

The Skillet released (versions 4.10 back to 4.07) codebase has been stable since December 2018. The only changes have been to the .toc and expansion of a table of enchanting scrolls.

In my attempts to understand this issue, I have disabled all addons except Skillet, ViragDevTool (updated), Buggrabber, and Bugsack. The complete taint.log with the failure is at https://pastebin.com/3vYf6vC3. Another taint.log with a successful change is at https://pastebin.com/6rRQu8up.

Since the taint.log contains lots of:

11/25 07:05:04.715 Global variable UIDROPDOWNMENU_MENU_LEVEL tainted by Skillet - Interface\FrameXML\UIDropDownMenu.lua:37

I tried replacing all the DropDown calls with calls to !NoTaint_UIDropDownMenu-v7.2.0.24015-r3.zip but that didn't change the symptoms.

It appears that Blizzard's changes in 8.2 and 8.2.5 have made things worse. I'd be happy to fix Skillet if I could figure out what to fix! Anyone have any suggestions?

bsmorgan 11-25-19 08:59 AM

One more thing. Skillet has the ability to create a queue of crafting tasks and can switch professions as it processes the queue. For example, Copper Bracers require 2 Copper Bars, if no bars are available but Copper Ore is available. Skillet will queue smelting of ore into bars and then the bracers. The profession switch also suffers from the taint (same CastSpellByName call).

A more interesting case is the Engineering recipe Advanced Target Dummy which creates a queue with over eight entries.

anisa 12-03-19 04:32 PM

Hi I don't use that addon but I think the error refers to a function reserved for Blizzard use. Ie the /logout button call which prevented the /logout command to be macro'd and stopped my nifty logout button next to my minimap from working at some point with the same error.

bsmorgan 12-03-19 05:11 PM

In the Skillet case, the function "reserved for Blizzard use" is "CastSpellByName" which has become "reserved" because of addon taint. The real issues here are why does the addon get tainted for only some professions and not all professions, and why does changing zones cause the taint to go away (i.e. the once failing "CastSpellByName" is now successful).

Not to mention the same code had been working without any issues since December 2018 and didn't start failing until Blizzard released 8.2 and 8.2.5.


All times are GMT -6. The time now is 06:57 PM.

vBulletin © 2020, Jelsoft Enterprises Ltd
© 2004 - 2019 MMOUI