GSE: Sequences, Variables, Macros

GSE: Sequences, Variables, Macros

6M Downloads

[BUG] Huge UI delays

ILeClerk opened this issue · 13 comments

commented

🔵 Describe the bug:
Hard to reproduce, but it seems that MobInfo2 gets "blamed" by Blizzard regarding a secure call issue, but I am not sure if it is MobInfo2 at all. Looking at my taint log, I can see it might have to do with GSE as well. Hence the bug filed. Once WoW is in this state, you have to reload or relogin. It keeps repeating for tons of elements and can cause a freeze of 1 to 2 seconds each time you click the macro key.

🔵 To reproduce: (Steps to reproduce the behavior)

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

🔵 The error:
Paste the error message in this blockquote.

  Interface/FrameXML/RestrictedFrames.lua:784
  An action was blocked in combat because of taint from MobInfo2 - ActionButton1:SetAttribute()
      Interface/FrameXML/ActionButton.lua:330 ActionButton1:UpdatePressAndHoldAction()
      Interface/FrameXML/ActionButton.lua:392 ActionButton1:Update()
      Interface/FrameXML/ActionButton.lua:342 ActionButton1:UpdateAction()
      Interface/FrameXML/ActionButton.lua:801 ActionButton1:OnEvent()
      Interface/FrameXML/ActionButton.lua:196
      SetMacroSpell()
      Interface/AddOns/GSE/API/Storage.lua:759 method()
      Interface/FrameXML/RestrictedFrames.lua:791
      securecall()
      Interface/FrameXML/RestrictedFrames.lua:810 CallMethod()
      local step = self:GetAttribute('step')
step = tonumber(step)
self:SetAttribute('macrotext', macros[step] )
step = step % #macros + 1
if not step or not macros[step] then -- User attempted to write a step method that doesn't work, reset to 1
	print('|cffff0000Invalid step assigned by custom step sequence', self:GetName(), step or 'nil', '|r')
	step = 1
end
self:SetAttribute('step', step)
self:CallMethod('UpdateIcon')
:10
      pcall()
      Interface/FrameXML/RestrictedExecution.lua:484
      Interface/FrameXML/SecureHandlers.lua:285
      GSE_HAVOC:Click()
      Interface/FrameXML/ChatFrame.lua:1617 ?()
      Interface/FrameXML/ChatFrame.lua:5209 ChatEdit_ParseText()
      Interface/FrameXML/ChatFrame.lua:4893 ChatEdit_SendText()
      Interface/FrameXML/ChatFrame.lua:3137
      UseAction()
      Interface/FrameXML/SecureTemplates.lua:364 handler()
      Interface/FrameXML/SecureTemplates.lua:690 PerformAction()
      Interface/FrameXML/SecureTemplates.lua:704 OnActionButtonClick()
      Interface/FrameXML/SecureTemplates.lua:746
      pcall()
      Interface/FrameXML/SecureHandlers.lua:266
      securecall()
      Interface/FrameXML/SecureHandlers.lua:296

🔵 Screenshots:
If applicable, add screenshots to help explain your problem.

🔵 Expected behavior:
A clear and concise description of what you expected to happen.

🔵 GSE.lua file:
Please provide your GSE.lua file or the export string for the specific macro that is causing an issue.

  • To find the GSE.lua file:
  1. First, make sure you have enabled the "File Name Extensions" checkbox in Explorer (View tab)
  2. Browse to C:\path\to\wow\_retail_\WTF\Account\YourAccountName\SavedVariables\ or /path/to/WoW/_retail_/WTF/Account/YourAccountName/SavedVariables
  3. Copy the GSE.lua file to your Desktop
  4. Rename this copy to GSA.lua.txt
  5. Then just drag it here in your message
  • Note: If you do not include your GSE.lua file you are wasting your time and mine. 90% of the time, the first thing I will ask for is "Can you please upload your GSE.lua file?". This file is needed with the error to work out Why that error occured for you.

🔵 Desktop (please complete the following information):

  • OS: Win11
  • Game Version retail 10.0.5]

🔵 GSE Version:

🔵 Additional context:
Add any other context about the problem here.

commented
commented

The actual failure is this part:

MobInfo2 - ActionButton1:SetAttribute()
Interface/FrameXML/ActionButton.lua:330

commented

Because a GSE button must operate in a blind case within the Combst Sandbox. It is effectively quarantined from the rest of your UI to operate. As soon as MobInfo tries to interact with it MobInfo is breaking the quarantine and disabling the GSE button.

MobInfo needs to leave the button alone and not touch it. As soon as it tries to “SetAttribute” on the button to leave its own things in the object it’s breaking the quarantine and Blizzard is going ok that button is broken now.

commented

GSE is a “SecureButton” it’s a very restricted and special case.

commented

Yeah but the strange part is that I don't see where this could happen in MobInfo2. It is all over the place when it happens :(

An action was blocked in combat because of taint from MobInfo2 - ActionButton1:SetAttribute()
An action was blocked in combat because of taint from MobInfo2 - ActionButton1:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton2:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton3:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton4:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton5:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton6:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton7:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton8:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton9:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton10:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton11:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton12:SetShown()
An action was blocked in combat because of taint from MobInfo2 - MainMenuBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - MultiBarBottomLeft:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - MultiBarBottomRight:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - StanceBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - PetActionBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - PossessActionBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - ActionButton1:SetAttribute()
An action was blocked in combat because of taint from MobInfo2 - ActionButton1:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton2:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton3:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton4:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton5:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton6:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton7:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton8:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton9:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton10:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton11:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton12:SetShown()
An action was blocked in combat because of taint from MobInfo2 - MainMenuBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - MultiBarBottomLeft:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - MultiBarBottomRight:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - StanceBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - PetActionBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - PossessActionBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - ActionButton1:SetAttribute()
An action was blocked in combat because of taint from MobInfo2 - ActionButton1:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton2:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton3:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton4:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton5:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton6:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton7:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton8:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton9:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton10:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton11:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton12:SetShown()
An action was blocked in combat because of taint from MobInfo2 - MainMenuBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - MultiBarBottomLeft:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - MultiBarBottomRight:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - StanceBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - PetActionBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - PossessActionBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - ActionButton1:SetAttribute()
An action was blocked in combat because of taint from MobInfo2 - ActionButton1:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton2:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton3:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton4:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton5:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton6:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton7:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton8:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton9:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton10:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton11:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton12:SetShown()
An action was blocked in combat because of taint from MobInfo2 - MainMenuBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - MultiBarBottomLeft:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - MultiBarBottomRight:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - StanceBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - PetActionBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - PossessActionBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - ActionButton1:SetAttribute()
An action was blocked in combat because of taint from MobInfo2 - ActionButton1:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton2:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton3:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton4:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton5:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton6:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton7:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton8:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton9:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton10:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton11:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton12:SetShown()
An action was blocked in combat because of taint from MobInfo2 - MainMenuBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - MultiBarBottomLeft:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - MultiBarBottomRight:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - StanceBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - PetActionBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - PossessActionBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - ActionButton2:SetAttribute()
An action was blocked in combat because of taint from MobInfo2 - ActionButton1:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton2:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton3:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton4:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton5:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton6:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton7:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton8:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton9:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton10:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton11:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton12:SetShown()
An action was blocked in combat because of taint from MobInfo2 - MainMenuBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - MultiBarBottomLeft:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - MultiBarBottomRight:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - StanceBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - PetActionBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - PossessActionBar:SetPointBase()
An action was blocked in combat because of taint from MobInfo2 - ActionButton2:SetAttribute()
An action was blocked in combat because of taint from MobInfo2 - ActionButton1:SetShown()
An action was blocked in combat because of taint from MobInfo2 - ActionButton2:SetShown()

commented

Well that is the problem MobInfo2 is not touching any action button or anything like that. That is the strange part that I am trying to figure out. I will keep looking :)

commented

You’re looking for “SetAttribute”

commented

It will just be looping around a bunch of objects in its code and not checking if the object is secure or not first.

commented

But the super easy way to test this is to disable MibInfo2 and then use your GSE template.

commented

It could also be a library that MobInfo depends on doing it.

commented

Also look if it’s updating a tool tip at all.

commented

MobInfo2 always updates tooltips (only for enemy targets) that is the purpose - let me see if it interferes with the change in Icon when GSE changes it. I am running with disabled newly added functionality and see if that is the cause - since I have not had any issues with any other addon - since that addition. I appreciate your feedback!

commented

Going to close this issue out - it is caused by dropdown menu. Seems like a known issue when using UIDropDownMenuTemplate, now using LibUIDropDownMenu and that seems to have solved the problems.