GurliGebis / WoWAddon-AngrierWorldQuests

29 stars 14 forks source link

lua error #59

Open nukhub opened 3 months ago

nukhub commented 3 months ago
1x [ADDON_ACTION_BLOCKED] L'AddOn 'AngrierWorldQuests' a tenté d'appeler la fonction protégée 'Button:SetPassThroughButtons()'.
[string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485>
[string "=[C]"]: in function `SetPassThroughButtons'
[string "@Blizzard_MapCanvas/MapCanvas_DataProviderBase.lua"]:224: in function `CheckMouseButtonPassthrough'
[string "@Blizzard_MapCanvas/Blizzard_MapCanvas.lua"]:209: in function `AcquirePin'
[string "@Blizzard_SharedMapDataProviders/WorldQuestDataProvider.lua"]:323: in function `AddWorldQuest'
[string "@Blizzard_SharedMapDataProviders/WorldQuestDataProvider.lua"]:248: in function `RefreshAllData'
[string "@Blizzard_WorldMap/WM_WorldQuestDataProvider.lua"]:26: in function `RefreshAllData'
[string "@Blizzard_SharedMapDataProviders/WorldQuestDataProvider.lua"]:180: in function `OnEvent'
[string "@Blizzard_MapCanvas/MapCanvas_DataProviderBase.lua"]:99: in function `SignalEvent'
[string "@Blizzard_MapCanvas/Blizzard_MapCanvas.lua"]:106: in function <...aceBlizzard_MapCanvas/Blizzard_MapCanvas.lua:105>
[string "=[C]"]: in function `secureexecuterange'
[string "@Blizzard_MapCanvas/Blizzard_MapCanvas.lua"]:109: in function `OnEvent'
[string "@Blizzard_WorldMap/Blizzard_WorldMap.lua"]:148: in function <...rfaceBlizzard_WorldMap/Blizzard_WorldMap.lua:147>

Locals:
_ = Frame {
}
event = "ADDON_ACTION_BLOCKED"
events = <table> {
}

ty for your work

Mythris29 commented 3 months ago

Same issue here

18x [ADDON_ACTION_BLOCKED] AddOn 'AngrierWorldQuests' tried to call the protected function 'Button:SetPassThroughButtons()'. [string "@!BugGrabber/BugGrabber.lua"]:481: in function <!BugGrabber/BugGrabber.lua:481> [string "=[C]"]: in function SetPassThroughButtons' [string "@Blizzard_MapCanvas/Blizzard_MapCanvas.lua"]:189: in functionAcquirePin' [string "@Blizzard_SharedMapDataProviders/QuestDataProvider.lua"]:228: in function AddQuest' [string "@Blizzard_SharedMapDataProviders/QuestDataProvider.lua"]:142: in functionCheckAddQuest' [string "@Blizzard_SharedMapDataProviders/QuestDataProvider.lua"]:153: in function RefreshAllData' [string "@Blizzard_SharedMapDataProviders/QuestDataProvider.lua"]:106: in functionOnEvent' [string "@Blizzard_MapCanvas/MapCanvas_DataProviderBase.lua"]:99: in function SignalEvent' [string "@Blizzard_MapCanvas/Blizzard_MapCanvas.lua"]:106: in function <...aceBlizzard_MapCanvas/Blizzard_MapCanvas.lua:105> [string "=[C]"]: in functionsecureexecuterange' [string "@Blizzard_MapCanvas/Blizzard_MapCanvas.lua"]:109: in function `OnEvent' [string "@Blizzard_WorldMap/Blizzard_WorldMap.lua"]:109: in function <...rfaceBlizzard_WorldMap/Blizzard_WorldMap.lua:108>

Locals: _ = Frame {

ynazar1 commented 3 months ago

I'm not able to get that to trigger on 43.2

Is there anything specific you're doing?

nukhub commented 3 months ago

was doing a world quest, i think it proc when i was in combat (im on 43.2 too btw)

ynazar1 commented 3 months ago

FWIW: I did few world quests. No errors from AWQ.

also Angrier World Quests does not have functionality of SetPassThroughButtons (i checked the code). This looks like lua taint.

I only got this:

1x [ADDON_ACTION_BLOCKED] AddOn 'TomCats' tried to call the protected function 'ObjectiveTrackerFrame:Show()'.
[string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485>
[string "=[C]"]: in function `Show'
[string "@Blizzard_ObjectiveTracker/Blizzard_ObjectiveTrackerContainer.lua"]:101: in function <...ectiveTracker/Blizzard_ObjectiveTrackerContainer.lua:43>
[string "=(tail call)"]: ?
[string "@Blizzard_SharedXML/MixinUtil.lua"]:341: in function <Blizzard_SharedXML/MixinUtil.lua:340>

Cautiously suggesting it's something else.

ynazar1 commented 3 months ago

herebedragons-2.0 library has this piece of code which is more or less what everyone uses.

herebedragons-Pins-2.0.lua

-- hack to avoid in-combat error on 10.1.5
worldmapProviderPin.SetPassThroughButtons = function() end

I think you got some ancient addon and ancient libraries that are taining the situation.

ynazar1 commented 3 months ago

as an aside, i strongly suggest Visual Studio Code as it's great in finding all the files that use this function if you open the entire addons library with it.

nukhub commented 3 months ago

i did reproduce the error with only AWQ loaded, no other addons, doing a random quest

1x [ADDON_ACTION_BLOCKED] L'AddOn 'AngrierWorldQuests' a tenté d'appeler la fonction protégée 'Button:SetPassThroughButtons()'.
[string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485>
[string "=[C]"]: in function `SetPassThroughButtons'
[string "@Blizzard_MapCanvas/MapCanvas_DataProviderBase.lua"]:224: in function `CheckMouseButtonPassthrough'
[string "@Blizzard_MapCanvas/Blizzard_MapCanvas.lua"]:209: in function `AcquirePin'
[string "@Blizzard_SharedMapDataProviders/BonusObjectiveDataProvider.lua"]:97: in function <...haredMapDataProviders/BonusObjectiveDataProvider.lua:92>
[string "=[C]"]: in function `xpcall'
[string "@Blizzard_ObjectAPI/Mainline/AsyncCallbackSystem.lua"]:76: in function `FireCallbacks'
[string "@Blizzard_ObjectAPI/Mainline/AsyncCallbackSystem.lua"]:35: in function <.../Blizzard_ObjectAPI/Mainline/AsyncCallbackSystem.lua:31>
[string "=[C]"]: in function `accessor'
[string "@Blizzard_ObjectAPI/Mainline/AsyncCallbackSystem.lua"]:52: in function `AddCallback'
[string "@Blizzard_ObjectAPI/Mainline/AsyncCallbackSystem.lua"]:60: in function `AddCancelableCallback'
[string "@Blizzard_SharedMapDataProviders/BonusObjectiveDataProvider.lua"]:92: in function `RefreshAllData'
...
[string "=[C]"]: in function `Show'
[string "@Blizzard_UIParentPanelManager/Mainline/UIParentPanelManager.lua"]:493: in function `SetUIPanel'
[string "@Blizzard_UIParentPanelManager/Mainline/UIParentPanelManager.lua"]:393: in function `ShowUIPanel'
[string "@Blizzard_UIParentPanelManager/Mainline/UIParentPanelManager.lua"]:174: in function <...ParentPanelManager/Mainline/UIParentPanelManager.lua:169>
[string "=[C]"]: in function `SetAttribute'
[string "@Blizzard_UIParentPanelManager/Mainline/UIParentPanelManager.lua"]:888: in function `ShowUIPanel'
[string "@Blizzard_WorldMap/QuestLogOwnerMixin.lua"]:106: in function `SetDisplayState'
[string "@Blizzard_WorldMap/QuestLogOwnerMixin.lua"]:42: in function `HandleUserActionToggleSelf'
[string "@Blizzard_WorldMap/Blizzard_WorldMap.lua"]:511: in function `ToggleWorldMap'
[string "TOGGLEWORLDMAP"]:1: in function <[string "TOGGLEWORLDMAP"]:1>

Locals:
_ = Frame {
}
event = "ADDON_ACTION_BLOCKED"
events = <table> {
}
ynazar1 commented 3 months ago

~Super quick question, by chance are you already in pre-release access where exp works again?~

GOT IT: Opening map while in combat.

nukhub commented 3 months ago

thank you

ynazar1 commented 3 months ago

Slightly able to narrow it down. There are two taint errors.

one is Frame:SetPassThroughButtons() another is Button:SetPassThroughButtons()

Both are restricted actions in combat. The addon likely inherits old style templates when creating frames and buttons but i've not been able to get to the bottom of this as i absolutely detest LUA frame code and barely understand it.

Definitely replicatable with combat even if AWQ is literally the only addon loaded.

ynazar1 commented 3 months ago

@Shauren FYI

GurliGebis commented 3 months ago

Okay, I got an idea 🙂

WoW has a function called InCombatLockdown(). My idea is to wrap those in an if-statement, so they are not called when in combat.

No point in trying to do that when in combat, since it's is blocked anyway.

I'll give it a try later today 🙂

GurliGebis commented 3 months ago

I just tried it myself - I cannot reproduce it (even with all my normal addons loaded).

Here is what I do test:

1: Pull something 2: Run this command to verify I'm in lockdown: /run print(InCombatLockdown()) (it prints true) 3: I press L to open the map

No errors are logged in Bugsack - so for some reason, it doesn't break for me.

Is your testing methods identical to the above?

GurliGebis commented 3 months ago

I have added the following: https://github.com/GurliGebis/WoWAddon-AngrierWorldQuests/commit/cc22fbf4659a1abf606c6e488a8284e6fe94eac1

Hopefully this solves the problem (since that is how it has been done on other addons).

Please test v0.43.3 and report back (reopen if the issue persists)

nukhub commented 3 months ago
2x` [ADDON_ACTION_BLOCKED] L'AddOn 'AngrierWorldQuests' a tenté d'appeler la fonction protégée 'Button:SetPassThroughButtons()'.
[string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485>
[string "=[C]"]: in function `SetPassThroughButtons'
[string "@Blizzard_MapCanvas/MapCanvas_DataProviderBase.lua"]:224: in function `CheckMouseButtonPassthrough'
[string "@Blizzard_MapCanvas/Blizzard_MapCanvas.lua"]:209: in function `AcquirePin'
[string "@Blizzard_SharedMapDataProviders/WorldQuestDataProvider.lua"]:323: in function `AddWorldQuest'
[string "@Blizzard_SharedMapDataProviders/WorldQuestDataProvider.lua"]:248: in function `RefreshAllData'
[string "@Blizzard_WorldMap/WM_WorldQuestDataProvider.lua"]:26: in function `RefreshAllData'
[string "@Blizzard_MapCanvas/MapCanvas_DataProviderBase.lua"]:76: in function `OnMapChanged'
[string "@Blizzard_MapCanvas/Blizzard_MapCanvas.lua"]:595: in function <...aceBlizzard_MapCanvas/Blizzard_MapCanvas.lua:594>
[string "=[C]"]: in function `secureexecuterange'
[string "@Blizzard_MapCanvas/Blizzard_MapCanvas.lua"]:598: in function `OnMapChanged'
[string "@Blizzard_WorldMap/Blizzard_WorldMap.lua"]:303: in function `OnMapChanged'
...
[string "=[C]"]: in function `Show'
[string "@Blizzard_UIParentPanelManager/Mainline/UIParentPanelManager.lua"]:493: in function `SetUIPanel'
[string "@Blizzard_UIParentPanelManager/Mainline/UIParentPanelManager.lua"]:336: in function `ShowUIPanel'
[string "@Blizzard_UIParentPanelManager/Mainline/UIParentPanelManager.lua"]:174: in function <...ParentPanelManager/Mainline/UIParentPanelManager.lua:169>
[string "=[C]"]: in function `SetAttribute'
[string "@Blizzard_UIParentPanelManager/Mainline/UIParentPanelManager.lua"]:888: in function `ShowUIPanel'
[string "@Blizzard_WorldMap/QuestLogOwnerMixin.lua"]:106: in function `SetDisplayState'
[string "@Blizzard_WorldMap/QuestLogOwnerMixin.lua"]:42: in function `HandleUserActionToggleSelf'
[string "@Blizzard_WorldMap/Blizzard_WorldMap.lua"]:511: in function `ToggleWorldMap'
[string "TOGGLEWORLDMAP"]:1: in function <[string "TOGGLEWORLDMAP"]:1>

Locals:
_ = Frame {
}
event = "ADDON_ACTION_BLOCKED"
events = <table> {
}

another error, only AWQ loaded (v0.43.3), same thing : opening map while in combat

ynazar1 commented 3 months ago

Still happenning

i think you got the frame but not the button

1x [ADDON_ACTION_BLOCKED] AddOn 'AngrierWorldQuests' tried to call the protected function 'Button:SetPassThroughButtons()'.

Addons loaded: AWQ Bugsack BugGrabber

GurliGebis commented 3 months ago

I wonder which button it is talking about, and why I cannot reproduce it locally.

You just pull something and then open the map? Could I get a screenshot of your settings for the addon? (just in case something in there is the cause of it)

ynazar1 commented 3 months ago

The error only happens first time after /reload in combat. Then it doesn't happen as it's now blocked by the internal stuff. Still seems like a whack-a-mole since there are a number of createframe calls or inheritance in different places.

My testing: /reload go fight closest bear... press M (or L), this doesn't seem to make a difference Bugsack gets error:

1x [ADDON_ACTION_BLOCKED] AddOn 'AngrierWorldQuests' tried to call the protected function 'Button:SetPassThroughButtons()'.
[string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485>
[string "=[C]"]: in function `SetPassThroughButtons'
[string "@Blizzard_MapCanvas/MapCanvas_DataProviderBase.lua"]:224: in function `CheckMouseButtonPassthrough'
[string "@Blizzard_MapCanvas/Blizzard_MapCanvas.lua"]:209: in function `AcquirePin'
[string "@Blizzard_SharedMapDataProviders/WorldQuestDataProvider.lua"]:323: in function `AddWorldQuest'
[string "@Blizzard_SharedMapDataProviders/WorldQuestDataProvider.lua"]:248: in function `RefreshAllData'
[string "@Blizzard_WorldMap/WM_WorldQuestDataProvider.lua"]:26: in function `RefreshAllData'

image

Shauren commented 3 months ago

Taint happens here: https://github.com/GurliGebis/WoWAddon-AngrierWorldQuests/blob/cc22fbf4659a1abf606c6e488a8284e6fe94eac1/QuestFrame.lua#L1267 (this recursively taints all child tables and frames of dataProvider, including all existing AND FUTURE map pins)

I'm not sure this can be worked around without either gutting the addon functionality (hiding POIs) or entirely reimplementing all world quest POI and hiding default ones

Shauren commented 3 months ago

To expand on reproduction - this also happens when you switch zones on map while in combat

ynazar1 commented 3 months ago

Perhaps looking at how the World Quest List does it may help. They pop up pins but no taint.

ynazar1 commented 3 months ago

@Shauren how did you find exact place where taint happens?

Shauren commented 3 months ago

By looking at the stack trace of the error you can see that what is tainted are map pins

With that information you look at what AngrierWorldQuests does that is related to map pins and that is

Then simply commenting out related code and testing ingame you will find that highlight doesn't trigger the error so it must have been the other pin interaction (indirect, via parent table WorldMapFrame.dataProviders)

ynazar1 commented 3 months ago

Temp solution for now, just don't do anything while in combat... PLEASE test! I don't really like it as there are cases while looking at world quests while in combat (ie while flying or running away from something)

Add to questframe.lua:

local function QuestFrame_Update()
    if InCombatLockdown() then
        return
    end

and

local function WorldMap_WorldQuestDataProviderMixin_ShouldShowQuest(self, info)
    if InCombatLockdown() then
        return
    end
Shauren commented 3 months ago

Taint happens when the function override happens, not inside it

edit: you also don't have to be in combat when you open map for the first time - https://github.com/GurliGebis/WoWAddon-AngrierWorldQuests/issues/59#issuecomment-2308959821

ynazar1 commented 3 months ago

Whelp I tried. Did i mention I hate how Lua frames work?

Gnarfoz commented 3 months ago

This particular annoyance can be squarely blamed on WoW's "taint" system. 🫤

GurliGebis commented 3 months ago

I still find it quiet interresting that it doesn't happen on my machine. Only difference I can see must be some other addon I have loaded that does something, that causes this issue to not happen somehow. Once I get time (maybe monday or tuesday), I'll try and see if I can pin point which one it is (it that is the case at all) - if there is one, we should be able to figure out what needs to be done 🙂

nukhub commented 2 months ago

I still find it quiet interresting that it doesn't happen on my machine. Only difference I can see must be some other addon I have loaded that does something, that causes this issue to not happen somehow. Once I get time (maybe monday or tuesday), I'll try and see if I can pin point which one it is (it that is the case at all) - if there is one, we should be able to figure out what needs to be done 🙂

this is my current addon list, if you want to rule them out from your machine

24/07/2024  08:20    <DIR>          !BugGrabber
15/08/2024  09:52    <DIR>          AdvancedInterfaceOptions
25/08/2024  13:09    <DIR>          AngrierWorldQuests
18/08/2024  11:11    <DIR>          AngryKeystones
18/01/2024  19:49    <DIR>          AnyFont
24/07/2024  08:20    <DIR>          Bartender4
24/08/2024  17:11    <DIR>          BartrubySummonPet
24/07/2024  08:20    <DIR>          BasicChatMods
25/08/2024  20:30    <DIR>          BigWigs
19/08/2024  11:55    <DIR>          BigWigs_Classic
25/08/2024  20:30    <DIR>          BigWigs_Core
20/08/2024  09:43    <DIR>          BigWigs_Dragonflight
25/08/2024  20:30    <DIR>          BigWigs_NerubarPalace
25/08/2024  20:30    <DIR>          BigWigs_Options
25/08/2024  20:30    <DIR>          BigWigs_Plugins
23/08/2024  08:05    <DIR>          BlacklistWarden
15/08/2024  09:52    <DIR>          BugSack
25/07/2024  19:38    <DIR>          ColorPickerPlus
18/01/2024  19:49    <DIR>          CooldownReadyFlashDisabler
18/01/2024  19:49    <DIR>          CrapAway
20/08/2024  09:43    <DIR>          Details
20/08/2024  09:43    <DIR>          Details_Compare2
20/08/2024  09:43    <DIR>          Details_DataStorage
20/08/2024  09:43    <DIR>          Details_EncounterDetails
20/08/2024  09:43    <DIR>          Details_RaidCheck
20/08/2024  09:43    <DIR>          Details_Streamer
20/08/2024  09:43    <DIR>          Details_TinyThreat
20/08/2024  09:43    <DIR>          Details_Vanguard
18/08/2024  11:11    <DIR>          DynamicCam
15/08/2024  09:52    <DIR>          EasyDelete
25/08/2024  13:09    <DIR>          ErrorFilter
20/08/2024  13:20    <DIR>          FastAutoRepair
22/08/2024  16:35    <DIR>          FasterLoot
20/08/2024  11:23    <DIR>          HideButtonGlow
21/08/2024  17:52    <DIR>          idTip
23/08/2024  08:05    <DIR>          ItemUpgradeQualityIcons
24/07/2024  08:20    <DIR>          Kui_Media
24/07/2024  08:20    <DIR>          Kui_Nameplates
24/07/2024  08:20    <DIR>          Kui_Nameplates_Core
24/07/2024  08:20    <DIR>          Kui_Nameplates_Core_Config
26/08/2024  13:26    <DIR>          Kui_Nameplates_TargetHelper
25/08/2024  20:30    <DIR>          LittleWigs
25/08/2024  20:30    <DIR>          LittleWigs_BattleForAzeroth
25/08/2024  20:30    <DIR>          LittleWigs_BurningCrusade
25/08/2024  20:30    <DIR>          LittleWigs_Cataclysm
25/08/2024  20:30    <DIR>          LittleWigs_Classic
25/08/2024  20:30    <DIR>          LittleWigs_Dragonflight
25/08/2024  20:30    <DIR>          LittleWigs_Legion
25/08/2024  20:30    <DIR>          LittleWigs_MistsOfPandaria
25/08/2024  20:30    <DIR>          LittleWigs_Shadowlands
25/08/2024  20:30    <DIR>          LittleWigs_WarlordsOfDraenor
25/08/2024  20:30    <DIR>          LittleWigs_WrathOfTheLichKing
20/08/2024  09:43    <DIR>          M6
15/08/2024  09:52    <DIR>          Masque
20/08/2024  14:14    <DIR>          MikScrollingBattleText
17/08/2024  19:12    <DIR>          MRT
20/08/2024  14:14    <DIR>          MSBTOptions
21/08/2024  09:31    <DIR>          MythicDungeonTools
13/08/2024  16:44    <DIR>          OmniCC
13/08/2024  16:44    <DIR>          OmniCC_Config
18/08/2024  11:11    <DIR>          OPie
15/08/2024  09:52    <DIR>          ParagonReputation
20/08/2024  09:43    <DIR>          PitBull4
20/08/2024  09:43    <DIR>          PitBull4_DogTagTexts
24/08/2024  08:26    <DIR>          Plumber
24/08/2024  08:26    <DIR>          PremadeGroupsFilter
23/08/2024  19:12    <DIR>          ProfessionShoppingList
26/08/2024  13:26    <DIR>          RaiderIO
26/08/2024  13:26    <DIR>          RaiderIO_DB_EU_F
26/08/2024  13:26    <DIR>          RaiderIO_DB_EU_M
26/08/2024  13:26    <DIR>          RaiderIO_DB_EU_R
26/08/2024  13:26    <DIR>          RaiderIO_DB_KR_F
26/08/2024  13:26    <DIR>          RaiderIO_DB_KR_M
26/08/2024  13:26    <DIR>          RaiderIO_DB_KR_R
26/08/2024  13:26    <DIR>          RaiderIO_DB_TW_F
26/08/2024  13:26    <DIR>          RaiderIO_DB_TW_M
26/08/2024  13:26    <DIR>          RaiderIO_DB_TW_R
26/08/2024  13:26    <DIR>          RaiderIO_DB_US_F
26/08/2024  13:26    <DIR>          RaiderIO_DB_US_M
26/08/2024  13:26    <DIR>          RaiderIO_DB_US_R
22/08/2024  23:44    <DIR>          RaidFrameSettings
15/08/2024  09:52    <DIR>          RCLootCouncil
27/07/2024  18:08    <DIR>          SexyMap
27/07/2024  18:08    <DIR>          SharedMedia
20/08/2024  13:20    <DIR>          SharedMedia_Causese
18/01/2024  19:49    <DIR>          SharedMedia_MyMedia
26/08/2024  13:26    <DIR>          SimpleItemLevel
19/08/2024  12:36    <DIR>          Simulationcraft
23/08/2024  09:35    <DIR>          TomTom
19/08/2024  12:36    <DIR>          TrufiGCD
26/08/2024  13:26    <DIR>          UnlimitedMapPinDistance
26/08/2024  13:26    <DIR>          WeakAuras
26/08/2024  13:26    <DIR>          WeakAurasArchive
26/08/2024  13:26    <DIR>          WeakAurasModelPaths
26/08/2024  13:26    <DIR>          WeakAurasOptions
26/08/2024  13:26    <DIR>          WeakAurasTemplates
GurliGebis commented 2 months ago

Thanks - I'll keep that list in mind 😊

GurliGebis commented 2 months ago

Okay, good news - I just had 10 minutes to do a test 🙂

If I load only AWQ, BugGrabber and BugSack - it fails the same way as described above. If I load my normal set of addons, it doesn't.

This means two things. 1: We can fix it from code. 2: I should be able to find out which addon has the code that fixes the issue by bisecting my list of loaded addons.

I won't get time to do it tonight, but hopefully I get some time to work on it tomorrow.

ynazar1 commented 2 months ago

So I just looked around and there are many addons that are triggering this issue currently. More or less all addons that deal with map pins somehow trigger this sooner or later.

Was able to replicate passthroughbutton taint calls with (only addon enabled): WorldQuestList Gathermate2 SilverDragon_Overlays AngrierWorldQuests

Few others i think too.

TL:DR: Seems like this is an endemic issue for pretty much everyone.

Gnarfoz commented 2 months ago

It's endemic to modifying the map. The map frame probably contains secure buttons somewhere and modifying it from addons (i.e. insecure code) taints the frame, blocking secure code from running. It's a rabbit hole. :-\

ynazar1 commented 2 months ago

Plumber is the only one i found that does something with map pins that doesn't seem to be having an issue. It puts seeds onto the emerald dream map.

Shauren commented 2 months ago

Weirdly enough this only causes the error to show up for me but I haven't spotted any broken functionality (yet)

Shauren commented 2 months ago

I wish blizzard didnt remove taintLog level 11 from release builds...

GurliGebis commented 2 months ago

Okay, I found the addon that does it. I have Kaliel's Tracker installed, with this little checkbox enabled: billede

If I disable that checkbox, it starts failing like described here.

Here is a gist that contains the current code and the modified code when the checkbox is enabled: https://gist.github.com/GurliGebis/a7492ef3f2622ce721bce7a44856e527

@Shauren do you have any ideas? (Should we just replicate those changes?)

GurliGebis commented 2 months ago

The changes he makes are:

    if newPin then
        pin:OnLoad();
        pin.UpdateMousePropagation = function() end <-- this has been added
    end

And this has been removed:

    -- Most pins should pass through right clicks to allow the map to zoom out
    -- This needs to be checked after OnAcquired because re-used pins can have
    -- dynamic setups that requires input propagation adjustment.
    pin:CheckMouseButtonPassthrough("RightButton");
GurliGebis commented 2 months ago

I have just released 11.0.2-20240910-2 - it is a large rewrite of the addon. If you go into the options dialog, and enable the checkbox Enable taint workarounds - Reloads UI (might have unknown effects) - it should fix the issue.

Can you please give it a try and report back?

Mike160770 commented 2 months ago

I have just released 11.0.2-20240910-2 - it is a large rewrite of the addon. If you go into the options dialog, and enable the checkbox Enable taint workarounds - Reloads UI (might have unknown effects) - it should fix the issue.

Can you please give it a try and report back?

still happens - only a reload of the UI helps - but not for long

xGux commented 2 months ago

I have just released 11.0.2-20240910-2 - it is a large rewrite of the addon. If you go into the options dialog, and enable the checkbox Enable taint workarounds - Reloads UI (might have unknown effects) - it should fix the issue.

Can you please give it a try and report back?

It still happens, specially in any WQ that needs to use an object. When the issue happens a /reload fixes it until the next quest that uses an item. Pretty much it breaks every single time in these quests. image

GurliGebis commented 2 months ago

Thanks, I'll take a look at it again, and see if I can figure out why it breaks

GurliGebis commented 1 month ago

I just tested it, with added print statements to verify the code is working.

Could I get you to try the following two things: 1: Disable all other addons. 2: Update the Modules\Workarounds\WorkaroundsModule.lua file, add the following line at the top of the function WorldMapFrame:AcquirePin(pinTemplate, ...) function, add the following line to the top of the function: print("Function was called")

Then reload the UI, open the map, and see if the chat is spammed with the text Function was called

Mike160770 commented 1 month ago

Ok... I am waiting for the results from the other guy in this thread, because I am not familiar with rewriting add-ons. Thx for your efforts, btw.

GurliGebis commented 1 month ago

Okay 🙂 The mentioned line is just to make it print something to the chat window, so we can verify that the code is actually being called. So it's not that big of a change (if something goes wrong, you can already just reinstall the addon, and you are back to where you were before)

xGux commented 1 month ago

I just tested it, with added print statements to verify the code is working.

Could I get you to try the following two things: 1: Disable all other addons. 2: Update the Modules\Workarounds\WorkaroundsModule.lua file, add the following line at the top of the function WorldMapFrame:AcquirePin(pinTemplate, ...) function, add the following line to the top of the function: print("Function was called")

Then reload the UI, open the map, and see if the chat is spammed with the text Function was called

It does print: image

GurliGebis commented 1 month ago

Okay, so it is running - interesting.

Are you clicking on anything when it happens (like in the #67 issue) - just to see if that is the cause of it.

xGux commented 1 month ago

Okay, so it is running - interesting.

Are you clicking on anything when it happens (like in the #67 issue) - just to see if that is the cause of it.

Yes, the error always shows up for me when clicking quest items from the Objective tracker.
A lua error is captured in bugsack and an UI error saying "An addon has block an UI action" pops up on screen. Reloading fixes it, until it happens again on the next quest

GurliGebis commented 1 month ago

I wonder how Kaliels Tracker does this, since it works with it. I will have to look into it.

GurliGebis commented 1 month ago

@xGux do you happen to have a suggestion for a quest I can pick up and test with? (Right now, none of my characters have any quests with items in the quest tracker) 🙂