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

Mike160770 commented 1 month ago

maybe the dailys in healing fall (sorry I play on a German client and do not know the English name for that zone)?

xGux 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) 🙂

So, did this to replicate the error:

  1. Clicked to track Robot Rumble, just north of Dornogal,
  2. Navigated to the WQ "Water the sheeps", it was added to the objective tracker.
  3. Selected a sheep and clicked the "Globe of nourishment" item from the Objective tracker.
  4. This popped up on the screen: image
  5. These are the log lines from BugSack: 2x [ADDON_ACTION_FORBIDDEN] AddOn 'AngrierWorldQuests' tried to call the protected function 'UseQuestLogSpecialItem()'. [string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485> [string "=[C]"]: in function `UseQuestLogSpecialItem' [string "@Blizzard_ObjectiveTracker/Blizzard_ObjectiveTrackerShared.lua"]:94: in function <...ObjectiveTracker/Blizzard_ObjectiveTrackerShared.lua:87>

Locals: _ = Frame { } event = "ADDON_ACTION_FORBIDDEN" events =

{ }

Follow-up:

If I reload in the WQ area, there are no errors when I click the item. This works 100% of the times I tried. If I reload outside of the WQ area and go in I get errors around 50% of the trys.

GurliGebis commented 1 month ago

Thanks, I'll take a look at it and see if I can track down what is causing it.

ala75 commented 1 month ago

Something simular happends also when using the default interface to drop an item in for example a Delve. this can be 100% replacated for example in kriegers rest where you need to hold a candle for light. The moment you drop the light by clicking the "drop" button in the ui (Objective frame) you get an error i will post below. A UI reload fixes it for the session.

5x [ADDON_ACTION_FORBIDDEN] AddOn 'AngrierWorldQuests' tried to call the protected function 'CastSpellByID()'. [string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485> [string "=[C]"]: in function `CastSpellByID' [string "@Blizzard_ObjectiveTracker/Blizzard_ScenarioObjectiveTracker.lua"]:1090: in function <...jectiveTracker/Blizzard_ScenarioObjectiveTracker.lua:1089>

Locals: _ = Frame { } event = "ADDON_ACTION_FORBIDDEN" events =

{ }

GurliGebis commented 1 month ago

This has been fixed in 11.0.2-20241003-2 - please test and reopen if the issue persists (remember to enable the taint workarounds in the options dialog)

And please report back, even if it works 😀

dryya commented 1 month ago

Unfortunately while 11.0.2-20241003-2 fixed this for me I'm experiencing it again on 20241008 - looks much the same as the previously reported issues. Still occuring with taint workarounds checked in the addon settings. It's always the "protected function Button:SetPassThroughButtons()" which triggers an ADDON_ACTION_BLOCKED - I can send the bugsack snippets but they don't seem to say anything of note.

Specifically, got it a few times when wandering around the Maw with this quest, but I think any quest item button is triggering it. https://www.wowhead.com/quest=63615/clip-their-wings

Issue stops with Angrier World Quests disabled.

GurliGebis commented 1 month ago

I just tested with just AWQ loaded, latest version, and I cannot get it to break with the workarounds being enabled in the settings dialog.

@dryya can you try with only AWQ loaded, and the workarounds enabled?

dryya commented 1 month ago

Yes, with only AWQ and the workarounds set (all other settings default) just checking a world quest from the quest log to track it taints the tracker and causes the error when clicking on any quest item button.

Interestingly, if I untrack a quest to remove it (after a UI reload) that doesn't seem to create any taint - items are still usable. But tracking quests is causing the action to be blocked 100% of the time.

GurliGebis commented 1 month ago

That is really strange. Can you try attaching a screenshot of your settings for the addon, so I can configure mine the same way?

dryya commented 1 month ago

Sure, here's the contents of my SavedVariables/AngrierWorldQuests.lua:

AngrierWorldQuests_Config = {
}
AngrierWorldQuestsDB = {
["profileKeys"] = {
["Dryya - Daggerspine"] = "Default",
["Pyrindice - Wyrmrest Accord"] = "Default",
},
["profiles"] = {
["Default"] = {
["dataVersion"] = 2,
["enableTaintWorkarounds"] = "true",
["collapsed"] = false,
},
},
}
GurliGebis commented 1 month ago

That works on my machine. I cannot, no matter how hard I try, with just AWQ loaded and workarounds enabled, cause any errors.

Not sure what is happening for you, but without being able to reproduce it, it seems pretty impossible to fix (Since the errors mentioned indicate they are the issues already being worked around.

dryya commented 1 month ago

I totally understand that there's nothing you can do without reproducing it, and thanks so much for looking into it as much as you have! I did totally reset my WTF, Interface/AddOns and Cache folders for a test and am still able to reproduce it, so here's a video in case anyone else comes across this issue.

https://github.com/user-attachments/assets/f1bcf6fa-540e-4069-bb3a-3558aafcbbdf

As far as I know, the last remaining thing that's unique to my machine and would affect AWQ is my CVars since those get synced to the server? It's not in the video but I had reset them with the console command /console cvar_reset a couple days ago, and just ran it again (in the same clean game session with only AWQ installed) and the issue still persists.

If you have any idea what else I could do to make this reproducible or reset my game to stock, please do let me know. (Since this isn't the only taint issue I've had, and it's driving me a little crazy haha.)

I really appreciate the time you've spent helping out with this!

GurliGebis commented 1 month ago

Interresting.

Could I get you to install the DebugLog addon, enable it, and then replace the contents of the WorkaroundsModule.lua file with this: https://raw.githubusercontent.com/GurliGebis/WoWAddon-AngrierWorldQuests/refs/heads/debugging/Modules/Workarounds/WorkaroundsModule.lua ? The changes I have done can be see here: https://github.com/GurliGebis/WoWAddon-AngrierWorldQuests/commit/688fa4ded6224dd1469c1602d7bc9a4eff0c51cf

Also, it might be an idea to install the two addons called BugSack and BugGrabber , since they make it easy to capture errors for pasting :)

Then, once you have done that, try and trigger the issue again - hopefully it should put a stacktrace inside the DebugLog, which should help pinpoint what is happening.

dryya commented 1 month ago

Hi, installed all those and made the changes to my installed AWQ! Here's the BugSack output, which I assume is not too helpful, and unfortunately it doesn't seem like new code is getting called, since I don't see anything under DebugLog's /dl

[ADDON_ACTION_FORBIDDEN] AddOn 'AngrierWorldQuests' tried to call the protected function 'UseQuestLogSpecialItem()'.
[string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485>
[string "=[C]"]: in function `UseQuestLogSpecialItem'
[string "@Blizzard_ObjectiveTracker/Blizzard_ObjectiveTrackerShared.lua"]:94: in function <...ObjectiveTracker/Blizzard_ObjectiveTrackerShared.lua:87>

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

I did try toggling the taintaddon workarounds option on and off in case that was necessary for the callback to trigger, but still don't see anything under /dl. Just to make sure I'm not making any mistake: drive_c/Program Files (x86)/World of Warcraft/_retail_/Interface/AddOns/AngrierWorldQuests/Modules/Workarounds/WorkaroundsModule.lua is the right spot, yes?

GurliGebis commented 1 month ago

That is the right spot, yes. It is really strange - with the exact same addons loaded and configured identically - on the same version of the game client - there shouldn't be a possibility for different things to happen. I'll keep looking into it - but I cannot promise anything yet.

GurliGebis commented 1 month ago

@dryya I just watched your video again. I noticed when you log in, that you get the mission complete popup.

Can you try cleaning that out, so it doesn't popup, then log out and back in again, and then see if the problem goes away?

Would be interresting if that is the cause if it - but would be a pinpoint in the right direction.

GurliGebis commented 1 month ago

@dryya if you want, try and replace the contents of WorkaroundsModule.lua with this: https://raw.githubusercontent.com/GurliGebis/WoWAddon-AngrierWorldQuests/refs/heads/debugging/Modules/Workarounds/WorkaroundsModule.lua

Maybe that fixes it - it overrides the SplashFrameMixin:OnHide() function, and removes the call the update the objective tracker.

Please test and report back.

dryya commented 1 month ago

Hi - I've tested the code there, and while it doesn't totally fix the issue, it now happens less! I've been trying to figure out what exactly the difference is, since there's some randomness.

(Also, the mission table doesn't seem to have anything to do with it - it seems to be behaving the same before/after clearing those out).

One way I've noticed to not trigger the protected function error is by reloading with a world quest pinned to my tracker (via AWQ quest log view), and then right click untrack (from the objective tracker) and track it again via AWQ. Switching to a different world quest seems to trigger the error. It's very unclear to me, but here's another video. (This is with your code from the debugging branch in WorkaroundsModule.lua.

https://github.com/user-attachments/assets/f7be1184-e119-4ec9-85df-326539bd8f03

dryya commented 1 month ago

Also, if you find another way to get a stack trace in the debug log, let me know - my Lua knowledge is practically nil, but I could confirm at least that it is possible to crudely print to it, it just seems that your code you had previously sent to place a stack trace in it was never called for some reason?

image

Adrenalined commented 1 month ago

@dryya if you want, try and replace the contents of WorkaroundsModule.lua with this: https://raw.githubusercontent.com/GurliGebis/WoWAddon-AngrierWorldQuests/refs/heads/debugging/Modules/Workarounds/WorkaroundsModule.lua

Maybe that fixes it - it overrides the SplashFrameMixin:OnHide() function, and removes the call the update the objective tracker.

Please test and report back.

I swapped this file in and got this on the log on of a character I haven't been on in a while.

1x ...orldQuests/Modules/Workarounds/WorkaroundsModule.lua:139: attempt to call global 'C_TalkingHead_SetConversationsDeferred' (a nil value) [string "@AngrierWorldQuests/Modules/Workarounds/WorkaroundsModule.lua"]:139: in function <...orldQuests/Modules/Workarounds/WorkaroundsModule.lua:135> [string "=[C]"]: in functionHide' [string "@Blizzard_UIParentPanelManager/Mainline/UIParentPanelManager.lua"]:901: in function HideUIPanel' [string "@Blizzard_FrameXML/SplashFrame.lua"]:94: in functionClose'

Locals: frame = SplashFrame { BottomCloseButton = Button { } BottomTexture = Texture { } BottomLeftFeature = Frame { } showingQuestDialog = false RightFeature = Frame { } LeftTexture = Texture { } BottomLine = Texture { } TopLeftFeature = Frame { } Header = FontString { } RightTexture = Texture { } TopCloseButton = Button { } Label = FontString { } } fromGameMenu = false (temporary) = nil (temporary) = false (*temporary) = "attempt to call global 'C_TalkingHead_SetConversationsDeferred' (a nil value)" `

GurliGebis commented 1 month ago

Good - now we are getting somewhere (even though it is broken). @Adrenalined and @dryya I have updated the debugging branch - could you try with the code in here again: https://raw.githubusercontent.com/GurliGebis/WoWAddon-AngrierWorldQuests/refs/heads/debugging/Modules/Workarounds/WorkaroundsModule.lua

Now it overrides both SplashFrameMixin:OnHide() and SplashFrameMixin:SetupFrame(screenInfo), removing the calls to ObjectiveTrackerFrame:Update() (from what I can see by searching to wow ui source code, we should now be handling every case where it happens)

Please test and report back 🙂

Adrenalined commented 1 month ago

Been running your updated file for most of the morning, seemed fine but this just popped.

I was in Hallowfall and I looted one of the purple outline treasure things on the ground. On loot this happened.

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 functionCheckMouseButtonPassthrough' [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 functionxpcall' [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 functionaccessor' [string "@Blizzard_ObjectAPI/Mainline/AsyncCallbackSystem.lua"]:52: in function AddCallback' [string "@Blizzard_ObjectAPI/Mainline/AsyncCallbackSystem.lua"]:60: in functionAddCancelableCallback' [string "@Blizzard_SharedMapDataProviders/BonusObjectiveDataProvider.lua"]:92: in function RefreshAllData' [string "@Blizzard_SharedMapDataProviders/BonusObjectiveDataProvider.lua"]:65: 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"]:148: in function <...rfaceBlizzard_WorldMap/Blizzard_WorldMap.lua:147>

Locals: _ = Frame { } event = "ADDON_ACTION_BLOCKED" events =

{ }

GurliGebis commented 1 month ago

That is another issue. It seems like the AcquirePin function isn't being overridden like it should be. I will provide an updated version that we can use to see if the AcquirePin function is still the original one, or the custom one. Maybe later tonight, if I get the time.

@dryya do you still see your issue with the new changes?

dryya commented 1 month ago

Thanks for the updated workarounds - unfortunately I'm still seeing the same behavior on tracking a WQ. The only case where I can get it to not cause an error is by retracking any WQs which were previously tracked before a UI reload.

prkr-ae commented 1 week ago

can't use the quest/world quest items by clicking on the icon from the objective tracker. here's a couple errors i'm getting:

-----1------

23x [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 functionCheckMouseButtonPassthrough' [string "@Blizzard_MapCanvas/Blizzard_MapCanvas.lua"]:209: in function AcquirePin' [string "@Blizzard_SharedMapDataProviders/WorldQuestDataProvider.lua"]:323: in functionAddWorldQuest' [string "@Blizzard_SharedMapDataProviders/WorldQuestDataProvider.lua"]:248: in function RefreshAllData' [string "@Blizzard_WorldMap/WM_WorldQuestDataProvider.lua"]:26: in functionRefreshAllData' [string "@Blizzard_SharedMapDataProviders/WorldQuestDataProvider.lua"]:180: in function OnEvent' [string "@Blizzard_MapCanvas/MapCanvas_DataProviderBase.lua"]:99: in functionSignalEvent' [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 functionOnEvent' [string "@Blizzard_WorldMap/Blizzard_WorldMap.lua"]:148: in function <...rfaceBlizzard_WorldMap/Blizzard_WorldMap.lua:147>

Locals: _ = Frame { } event = "ADDON_ACTION_BLOCKED" events =

{ }

-----2-----

7x [ADDON_ACTION_FORBIDDEN] AddOn 'AngrierWorldQuests' tried to call the protected function 'UseQuestLogSpecialItem()'. [string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485> [string "=[C]"]: in function `UseQuestLogSpecialItem' [string "@Blizzard_ObjectiveTracker/Blizzard_ObjectiveTrackerShared.lua"]:94: in function <...ObjectiveTracker/Blizzard_ObjectiveTrackerShared.lua:87>

Locals: _ = Frame { } event = "ADDON_ACTION_FORBIDDEN" events =

{ }

GurliGebis commented 1 week ago

@prkr-ae did you enable the workarounds in settings?

prkr-ae commented 1 week ago

@prkr-ae did you enable the workarounds in settings?

I haven't. I'll give it a try the next time I'm on

prkr-ae commented 6 days ago

@prkr-ae did you enable the workarounds in settings?

ok, i turned the workarounds on. here's a couple more errors since then:

----1----

7x [ADDON_ACTION_FORBIDDEN] AddOn 'AngrierWorldQuests' tried to call the protected function 'CastSpellByID()'. [string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485> [string "=[C]"]: in function `CastSpellByID' [string "@Blizzard_ObjectiveTracker/Blizzard_ScenarioObjectiveTracker.lua"]:1102: in function <...jectiveTracker/Blizzard_ScenarioObjectiveTracker.lua:1101>

Locals: _ = Frame { } event = "ADDON_ACTION_FORBIDDEN" events =

{ }

----2----

8x [ADDON_ACTION_FORBIDDEN] AddOn 'AngrierWorldQuests' tried to call the protected function 'UseQuestLogSpecialItem()'. [string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485> [string "=[C]"]: in function `UseQuestLogSpecialItem' [string "@Blizzard_ObjectiveTracker/Blizzard_ObjectiveTrackerShared.lua"]:94: in function <...ObjectiveTracker/Blizzard_ObjectiveTrackerShared.lua:87>

Locals: _ = Frame { } event = "ADDON_ACTION_FORBIDDEN" events =

{ }

martinboy1974 commented 3 days ago

I am also still getting lua error and I have enabled workaround

1x [ADDON_ACTION_FORBIDDEN] AddOn 'AngrierWorldQuests' tried to call the protected function 'UseQuestLogSpecialItem()'. [string "@!BugGrabber/BugGrabber.lua"]:485: in function <!BugGrabber/BugGrabber.lua:485> [string "=[C]"]: in function `UseQuestLogSpecialItem' [string "@Blizzard_ObjectiveTracker/Blizzard_ObjectiveTrackerShared.lua"]:94: in function <...ObjectiveTracker/Blizzard_ObjectiveTrackerShared.lua:87>

Locals: _ = Frame { } event = "ADDON_ACTION_FORBIDDEN" events =

{ }

GurliGebis commented 2 days ago

I'm looking into it - if you can give me steps you take to reproduce it, it would be a great help :)

martinboy1974 commented 2 days ago

I'm looking into it - if you can give me steps you take to reproduce it, it would be a great help :)

The only thing that reproduces it, is accepting a quest that ads a use item in the quest tracker

GurliGebis commented 2 days ago

Okay, I'll try and look into it. It is a bit strange, since I'm not able to trigger the issue with the workarounds enabled. But if I run into it, I might be able to figure it out.

prkr-ae commented 2 days ago

it's the same with world quests that give you an item to click in the quest tracker. you can go to the hallowfall spreading the light area and try with the one that gives you the item that reveals the hidden guys.