Bug: Action Bar Errors
ceylina opened this issue ยท 43 comments
Since I guess the release was 7.2.1 and now 7.2.2 I am occasionally getting errors using masque to skin my action bars with the dominos addon
This error will pop up randomly
1x [ADDON_ACTION_BLOCKED] AddOn 'Masque' tried to call the protected function 'MultiBarRightButton11:Show()'.
!BugGrabber\BugGrabber.lua:573: in function <!BugGrabber\BugGrabber.lua:573>
[C]: in function Show' FrameXML\ActionButton.lua:363: in function <FrameXML\ActionButton.lua:337> [C]: in function
ActionButton_Update'
FrameXML\ActionButton.lua:812: in function `ActionButton_OnEvent'
FrameXML\ActionButton.lua:252: in function <FrameXML\ActionButton.lua:244>
Locals:
This looks like bleed through from another issue. Masque doesn't hide or show any buttons. I need more info figure out what was causing it. The next time it happens, remember exactly what you were doing or what was happening at the time. IE, Were you in combat? Had you lost control of your character (stunned, feared, etc)? Is it when you try to change skin or just as you're playing? Etc.
Adding a bit more - I am using caith- no shadow.
Now the thing is I never reset my skin after you released 7.2.2 so it still had modifications for "equipped"
Each time I am in combat when this triggers. The exact details I can't be certain because I only notice when bugsack shows a bug. If I can narrow down exactly what is happening I will add to this report.
I am also using dominos to issue a show state to fade my side action bars (bars 9 and 10) when in combat and return to a full state out of combat.
Try a few things. First, reset the skin (click the big red reset button). Then, select the Blizzard skin (global), type in the chat window /rl
. Re-select Caith - No Shadow and continue playing. If the error occurs again, log out, disable Masque, log back in and play awhile and see if the bug still occurs with Masque disabled.
Yup already went through those steps right before I replied to this. I will let you know if I hit an error again. I have hope it was just needing to reset the skin. I even went so far as to remove the saved variable wtf file to be sure. This may take a few days to test out but I will report back what I find.
FYI, I get a similar error with Mapster. Sometimes, add-ons using the same libraries will experience errors propagating through the library from other add-ons, so without explicit details, it's hard to track down the real issue. We'll see what happens with Masque disabled.
No errors with masque disabled but this might be of interest:
This happens on my rogue the most (I am pretty sure only on my rogue at this point).
when it happens on my rogue it is from being knocked out of stealth due to entering combat. The latest error I have with masque enabled is the same as above only OverrideActionBarButton6:Show()
I will see if I can reproduce this repeatedly
so here I am on multiple alts with the same few addons loaded trying my damndest to get this to reproduce.
I finally got it to go on my demon hunter after getting into a random world quest group for one of those rare elites. After getting stunned and pushed back and all sorts of things the error happened and a taint log actually showed up. Once I logged out this wall of text happened. Hopefully it can be useful
edit going to attach the taint file this is just too long
taint.txt
In case you want the function "ActionButton_UpdateUsable" from the FrameXML\Actionbutton.lua file it is
function ActionButton_UpdateUsable(self)
local icon = self.icon;
local normalTexture = self.NormalTexture;
if ( not normalTexture ) then
return;
end
local isUsable, notEnoughMana = IsUsableAction(self.action);
if ( isUsable ) then
icon:SetVertexColor(1.0, 1.0, 1.0);
normalTexture:SetVertexColor(1.0, 1.0, 1.0);
elseif ( notEnoughMana ) then
icon:SetVertexColor(0.5, 0.5, 1.0);
normalTexture:SetVertexColor(0.5, 0.5, 1.0);
else
icon:SetVertexColor(0.4, 0.4, 0.4);
normalTexture:SetVertexColor(1.0, 1.0, 1.0);
end
end
Does this old forum post have anything to do with this?
https://us.battle.net/forums/en/wow/topic/10574157350
What I mean to say is one of the new functions in 7.2.5 that is now slowly being integrated causing a similar taint issue?
That old forum post doesn't apply as Masque uses a secure hook for that function. I'm home now, so I'll do some testing.
What add-ons did you have enabled? I need to see if I can reproduce it.
Masque / Masque Caith, bugsack, buggrabber, dominos (only dominos config and dominos modules enabled), tullarange (I had accidentally put tullacc earlier oops) weakauras, and sharedmedia (for weakauras)
I am also downgrading to 7.2.0 for masque and caith to see if that version causes errors (2 mythic pluses and several world bosses / rare elites groups later and nothing)
I did notice that there is certainly a bug with Dominos. If you change profiles, Dominos fidgets with the sizing of some of the layers, throwing the skin off. I also do NOT like the cooldown numbers on buttons with charges left. Annoying as hell. :p
I've only gotten it once and only when using Dominos on my Shaman (but forgot to enable taint log). Couldn't get it to trigger on my Mage, even after being stunned, feared, etc. I've a few more characters to finish the daily stuff with so we'll see if I get it then. Thing is, if it only happens with Dominos, it's a clash between it and Masque. Bartender does not have this issue at all. So it's take some time to narrow it down.
I appreciate you taking the time to check this. I downgraded and have now run 6 mythic pluses and numerous other combat situations and nothing so far as an error.
I love bartender but it really is a resource hog with masque. I wish it was optimized better because it has so many superior options.
I will just keep the older version for now unless you need me to test a potential work around of if you post something to dominos and they ever get around to updating
Try something when you play next, in Masque/Core/Button.lua, change lines 476-480 from:
if not Region.__MSQ_SetSwipeColor then
Region.__MSQ_SetSwipeColor = Region.SetSwipeColor
Region.SetSwipeColor = __MTF
end
Region:__MSQ_SetSwipeColor(GetColor(Color or Skin.Color or BaseColor))
To:
--if not Region.__MSQ_SetSwipeColor then
--Region.__MSQ_SetSwipeColor = Region.SetSwipeColor
--Region.SetSwipeColor = __MTF
--end
--Region:__MSQ_SetSwipeColor(GetColor(Color or Skin.Color or BaseColor))
Region:SetSwipeColor(GetColor(Color or Skin.Color or BaseColor))
(Basically, comment out all the lines using -- and then add the last line.)
And see if you get the error. I tried it on 4 different characters and never got it, but you'll likely be playing more than I in the next 24 hours. :)
So far no errors. I will keep testing as much as I can to try and get it to error but I don't think it will
Alright. I've got a secure hook dry-coded but I need to test it. Ran out of time. Will do that tonight. Let me know if you have any more errors.
1x [ADDON_ACTION_BLOCKED] AddOn 'Masque' tried to call the protected function 'OverrideActionBarButton4:Show()'.
!BugGrabber\BugGrabber.lua:573: in function <!BugGrabber\BugGrabber.lua:573>
[C]: in function Show' FrameXML\ActionButton.lua:363: in function <FrameXML\ActionButton.lua:337> [C]: in function
ActionButton_Update'
FrameXML\ActionButton.lua:719: in function `ActionButton_OnEvent'
FrameXML\ActionButton.lua:206: in function <FrameXML\ActionButton.lua:203>
Locals:
Im having alot this error / i have Dominos addon
1x [ADDON_ACTION_BLOCKED] AddOn 'Masque' tried to call the protected function 'OverrideActionBarButton4:Show()'.
!BugGrabber\BugGrabber.lua:573: in function <!BugGrabber\BugGrabber.lua:573>
[C]: in function Show' FrameXML\ActionButton.lua:363: in function <FrameXML\ActionButton.lua:337> [C]: in function
ActionButton_Update'
FrameXML\ActionButton.lua:719: in function `ActionButton_OnEvent'
FrameXML\ActionButton.lua:206: in function <FrameXML\ActionButton.lua:203>
Locals:
I did some looking around and it seems that an add-on accessing certain protected frames can cause a cascade of taint that will throw errors on otherwise "safe" action button calls. I've no idea what add-on is actually causing it (Masque doesn't access those frames) but I would imagine it could be found by elimination. First, test with only Masque and Dominos enabled. Then, enabled the others one at a time until the error occurs. In my case, I've a sneaking feeling it's MoveAnything.
Well I don't use moveanything because that is a taint monster.
Ok I thought it was my rogue only but it just happened on my hunter
AddOn 'Masque' tried to call the protected function 'ActionButton1:Show()'.
So something with Dominos and the changes to masque are causing it to throw errors when stunned. I was in eye of azshara and was rooted by a mob at the end. This error happened shortly afterward. I can't confirm the root was the stun but it happened around that time
This has only started happening after the changes to masque and only happens with dominos. I can use bartender and it won't happen but combining bartender and masque adds about 5 MB of running memory to the game hence why I want to retain Dominos.
I am going to run masque with skinning disabled for dominos and see if I still get this error.
The only addons I have the touch action bars are Dominos, TullaCC (to show range and resources on top of action buttons as colors), and OmniCC. Of the three the only one that could be interfering is Dominos. The only thing that is skinning buttons on dominos is MAsque.
Since this is not an error that happens every time in combat it will take a while to narrow down. I can confirm with masque disabled at the addon level I get no errors. With masque enabled but dominos disabled in the settings of masque it DOES cause errors. I will try different setting with masque enabled to trace down if one of the enabled addons is interfering.
These are the masque enabled addons I have
Dominos, Pitbull Unit Frames, Raven, WeakAuras
Again, and I don't want to sound like I am pointing fingers as this could be another addon and finally I am seeing taint but this only happened since the recent update changes to masque. I had all these enabled working well together. The only one of all these addons that has been recently updated is Masque.
Sorry for more replies. But I am going to try and rule out weakauras as the culprit. It could very well be that they are not compatible with your changes.
Having Dominos disabled in Masque's options only tells Masque not to skin it. It does not stop Dominos from interacting with Masque. That said, I'm probably going to have to install Dominos myself to figure it out. Masque does not hide or show buttons, ever. So the error itself is clearly propagated from somewhere else. Have you tried enabling the taint log?
Type /console taintLog 1
into the chat log when you first log on and play until you get the error again. Afterwards, browse to the WoW logs folder and find the taint.log. Copy/paste the info here. I'm at work so can't really do much, but it may give us a clue.
Trying my best to get this to throw something. I am trying just to simplify as much as possible and running only dominos, weakauras, and masque to see if either of these cause the issue.
Also, I am running a taintlog while fighting and getting into combat situations to see if I can throw something that can help
on a side note, you have a reference to a library in the toc that is not in the latest package
Libs\LibDualSpec-1.0\LibDualSpec-1.0.lua
Good idea. I was trying to suggest only running Masque and Dominos. WeakAuras should be OK. As far as the missing library, it won't hurt anything. I just forgot to remove it when I removed the embedded library. I'll fix it next round.
And the more I look into similar issues people are having, the more I become convinced that this is merely propagation from another add-on. With 7.x (Not sure which version), Blizzard made the World Map protected. Any add-on that tries to do ANYTHING with it, especially during combat, will taint the entire execution path. This is why a lot of users are complaining of getting an error when closing the map.
I made a few changes that should hopefully reduce memory usage. Try this one instead:
This should be the last change that needs tested, assuming nothing going bonkers.
I noticed a nice memory reduction so this should be even nicer. I haven't had a single error so I think your changes are good as far as I can test.
I wasn't sure if the change in handling the hooked state would make much of a difference. Nice to hear that it did.
I do appreciate you testing this. While Dominos certainly has its benefits, it lacks too many per-bar options for me to use full time so testing is always a chore for me. Someone who uses it primarily is more likely to find problems.
I have some other things to tweak but haven't decided if I want to release them now or wait until the PTR patch goes live. It supposedly adds a method that allows the cooldown line (for charges, etc) to be round.
Can't get an error with the change put in after running everything I can think of. This error is so haphazard that I can't guarantee with certainty it is fixed but after running this much today on alts I would have got it to happen at least once.
I'll keep going until you release your fix to make sure it doesn't happen but I wanted to report in.
Thanks for testing it out. I'll test out the secure hook tonight and see if it causes issues. If I can't trigger anything, I'll let you try it out. I wouldn't be surprised if touching the cooldown frame in the wrong way causes taint, since even looking cross-eyed at the Questlog/WorldMap frames in Lua does lately.
I think I can safely say the error is gone with the changes. There is no way after all the dumb stuff I did today that I would not have got that error. As soon as you have a patch up, I'll give it a shot.
Noticed there was a reference in the recently updated list on curse's site but looking at wowace's site the 7.2.2 on there is the same from last week. Has there been a change made or was it backed out?
Not sure what you mean. The 7.2.2 should be the same on both sites. All I did was delete 7.2.1, which was replaced by 7.2.2. Curse's "recently updated" is probably a bit stale. :p
Probably just triggered because I deleted 7.2.1. Ie, triggers when files are updated.
Also, I just did some testing, Bartender only uses 1-2mb more than Dominos on my machine. Certainly worth it for the per-bar config. Hotkey text on the pet bar was annoying. :p
Nothing to do with anything but just wanted to share why I use dominos over bartender, especially with masque. Granted I don't have per bar control in dominos (which I really miss) but... I do get a lot less usage in masque from dominos as show below.
BT + Masque idle is around 3.55 MB while Dominos + Masque is around 1.08 MB
So it seems that bartender's ability to have per bar skins really ups the memory consumption. I know it is not a lot but I am a stickler for low memory addons when I can get away with it.