arkayenro / arkinventory

A World of Warcraft Inventory mod for Retail, Burning Crusade, and Classic
108 stars 14 forks source link

[BUG] LUA Error when imbue a Weapon with "Weapon Enchant Items" #1840

Open fubaWoW opened 10 months ago

fubaWoW commented 10 months ago

What version number you are using? 3.10.19

What game client are you playing? Retail, Wrath, Classic / Live, PTR, Beta Retail

What language is the game client set to? English

Describe the bug Using a Weapon Enchant Item like Howling Rune or Completely Safe Rockets cause a very strange LUA Error (see Addition context).

Seems the Error comes from the Ark Inventory Core AddOn itself because the error is present if ANYTHING else is disabled. (also Ark Inventory Sub-Modules like Rules and Search)

To Reproduce Use any Weapon Enchant Item like Howling Rune or Completely Safe Rockets

Additional context

2x SharedXML/Scroll/ScrollBoxListView.lua:628: attempt to perform arithmetic on a nil value
[string "@SharedXML/Scroll/ScrollBoxListView.lua"]:628: in function <SharedXML/Scroll/ScrollBoxListView.lua:587>
[string "=(tail call)"]: ?
[string "@SharedXML/Scroll/ScrollBoxListView.lua"]:831: in function `ValidateDataRange'
[string "@SharedXML/Scroll/ScrollBox.lua"]:708: in function `Update'
[string "@SharedXML/Scroll/ScrollBox.lua"]:258: in function `SetScrollPercentageInternal'
[string "@SharedXML/Scroll/ScrollBox.lua"]:250: in function `SetScrollPercentage'
[string "@SharedXML/Scroll/ScrollBox.lua"]:242: in function `ScrollToEnd'
[string "@Blizzard_Professions/Blizzard_ProfessionsCraftingOutputLog.lua"]:369: in function `FinalizePendingResultData'
[string "@Blizzard_Professions/Blizzard_ProfessionsCraftingOutputLog.lua"]:317: in function <...rofessions/Blizzard_ProfessionsCraftingOutputLog.lua:313>

Locals:
self = <table> {
 EnumerateFrames = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:157
 GetFrameExtent = <function> defined @SharedXML/Scroll/ScrollController.lua:39
 SetAcquireLocked = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:335
 TranslateElementDataToUnderlyingData = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:241
 ForEachFrame = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:141
 SetFrameExtent = <function> defined @SharedXML/Scroll/ScrollController.lua:44
 FindElementDataIndex = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:195
 SetHorizontal = <function> defined @SharedXML/Scroll/ScrollController.lua:31
 ForEachElementData = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:183
 scrollBox = Frame {
 }
 GetElementExtentCalculator = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:796
 PrepareScrollToElementDataByPredicate = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:249
 CreateTemplateExtentFromElementData = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:543
 UnregisterEvents = <function> defined @SharedXML/CallbackRegistry.lua:200
 GetExtent = <function> defined @SharedXML/Scroll/ScrollBoxLinearView.lua:151
 SetElementExtentCalculator = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:789
 GetPanExtent = <function> defined @SharedXML/Scroll/ScrollBoxLinearView.lua:163
 IsScrollToDataIndexSafe = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:245
 IsVirtualized = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:571
 Layout = <function> defined @SharedXML/Scroll/ScrollBoxLinearView.lua:124
 GetElementIndent = <function> defined @SharedXML/Scroll/ScrollBoxLinearView.lua:110
 SetElementResetter = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:496
 templateInfoDirty = true
 SetPanExtent = <function> defined @SharedXML/Scroll/ScrollBoxView.lua:51
 HasEqualTemplateInfoExtents = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:727
 SetVirtualized = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:500
 SetElementIndentCalculator = <function> defined @SharedXML/Scroll/ScrollBoxLinearView.lua:106
 GetLayoutFunction = <function> defined @SharedXML/Scroll/ScrollBoxLinearView.lua:114
 SetElementInitializer = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:448
 SetScrollBox = <function> defined @SharedXML/Scroll/ScrollBoxLinearView.lua:135
 ReinitializeFrames = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:535
 RemoveDataProvider = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:283
 IsDataIndexWithinRange = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:946
 dataIndexEnd = 1
 FindElementDataByPredicate = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:199
 GetDataIndexEnd = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:933
 SetInvalidationReason = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:913
 OnDataProviderSort = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:318
 GetSpacing = <function> defined @SharedXML/Scroll/ScrollBoxLinearView.lua:53
 RegisterCallback = <function> defined @SharedXML/CallbackRegistry.lua:110
 GetFrames = <function> defined @SharedXML/Scroll/ScrollBoxView.lua:90
 UnregisterCallback = <function> defined @SharedXML/CallbackRegistry.lua:185
 Release = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:413
 RegisterCallbackWithHandle = <function> defined @SharedXML/CallbackRegistry.lua:154
 initializerList = <table> {
 }
 FindByPredicate = <function> defined @SharedXML/Scroll/ScrollBoxListView.lua:207
 GetExtentUnti
ala75 commented 9 months ago

I have the exact same error. To be sure its not another addon or the current Arkinventory config i removed addons directory and WTF directory. Clean installed Arkinventory, stock settings. The moment i apply a Weapon Enchant Item like Howling Rune this error pops up.

arkayenro commented 9 months ago

does it happen when arkinventory is not installed?

ala75 commented 9 months ago

Hey Arkayenro, happy new year to you and your loved ones!

I use your addon since you created (around vanilla/tbc?) it but this is the most weird bug i have seen in a very long time.

To the point: no the error does not pop up with no addons installed (beside buggrabber and bugsack to grab it. I did some quick testing, just like i mentioned in my previous post. I made screenshots so you can see what it does:

1) only bugsack/buggrabber. apply buzzing rune. no error

https://freeimage.host/i/wowscrnshot-123123-234521.J5fHDAb

WoWScrnShot_123123_234521

2) only bugsack/buggrabber/arkinventory (stock). apply buzzing rune. error pops up

https://freeimage.host/i/wowscrnshot-123123-234901.J5fJfRa

WoWScrnShot_123123_234901

I did notice another error pop up in chat, reputation relared. But that doenst happen when i put back my interface/wtf folders on live.

tested against arkinventory latest version 3.10.22.

full error message:

2x SharedXML/Scroll/ScrollBoxListView.lua:628: attempt to perform arithmetic on a nil value [string "@SharedXML/Scroll/ScrollBoxListView.lua"]:628: in function <SharedXML/Scroll/ScrollBoxListView.lua:587>

[string "@SharedXML/Scroll/ScrollBoxListView.lua"]:831: in function ValidateDataRange' [string "@SharedXML/Scroll/ScrollBox.lua"]:708: in function <SharedXML/Scroll/ScrollBox.lua:696> [string "=[C]"]: in functionUpdate' [string "@SharedXML/Scroll/ScrollBox.lua"]:258: in function SetScrollPercentageInternal' [string "@SharedXML/Scroll/ScrollBox.lua"]:250: in functionSetScrollPercentage' [string "@SharedXML/Scroll/ScrollBox.lua"]:242: in function ScrollToEnd' [string "@Blizzard_Professions/Blizzard_ProfessionsCraftingOutputLog.lua"]:369: in functionFinalizePendingResultData' [string "@Blizzard_Professions/Blizzard_ProfessionsCraftingOutputLog.lua"]:317: in function <...rofessions/Blizzard_ProfessionsCraftingOutputLog.lua:313>

Locals: self =

{ EnumerateFrames = defined @SharedXML/Scroll/ScrollBoxListView.lua:157 GetFrameExtent = defined @SharedXML/Scroll/ScrollController.lua:39 SetAcquireLocked = defined @SharedXML/Scroll/ScrollBoxListView.lua:335 TranslateElementDataToUnderlyingData = defined @SharedXML/Scroll/ScrollBoxListView.lua:241 ForEachFrame = defined @SharedXML/Scroll/ScrollBoxListView.lua:141 SetFrameExtent = defined @SharedXML/Scroll/ScrollController.lua:44 FindElementDataIndex = defined @SharedXML/Scroll/ScrollBoxListView.lua:195 SetHorizontal = defined @SharedXML/Scroll/ScrollController.lua:31 ForEachElementData = defined @SharedXML/Scroll/ScrollBoxListView.lua:183 scrollBox = Frame { } GetElementExtentCalculator = defined @SharedXML/Scroll/ScrollBoxListView.lua:796 PrepareScrollToElementDataByPredicate = defined @SharedXML/Scroll/ScrollBoxListView.lua:249 CreateTemplateExtentFromElementData = defined @SharedXML/Scroll/ScrollBoxListView.lua:543 UnregisterEvents = defined @SharedXML/CallbackRegistry.lua:200 GetExtent = defined @SharedXML/Scroll/ScrollBoxLinearView.lua:151 SetElementExtentCalculator = defined @SharedXML/Scroll/ScrollBoxListView.lua:789 GetPanExtent = defined @SharedXML/Scroll/ScrollBoxLinearView.lua:163 IsScrollToDataIndexSafe = defined @SharedXML/Scroll/ScrollBoxListView.lua:245 IsVirtualized = defined @SharedXML/Scroll/ScrollBoxListView.lua:571 Layout = defined @SharedXML/Scroll/ScrollBoxLinearView.lua:124 GetElementIndent = defined @SharedXML/Scroll/ScrollBoxLinearView.lua:110 SetElementResetter = defined @SharedXML/Scroll/ScrollBoxListView.lua:496 templateInfoDirty = true SetPanExtent = defined @SharedXML/Scroll/ScrollBoxView.lua:51 HasEqualTemplateInfoExtents = defined @SharedXML/Scroll/ScrollBoxListView.lua:727 SetVirtualized = defined @SharedXML/Scroll/ScrollBoxListView.lua:500 SetElementIndentCalculator = defined @SharedXML/Scroll/ScrollBoxLinearView.lua:106 GetLayoutFunction = defined @SharedXML/Scroll/ScrollBoxLinearView.lua:114 SetElementInitializer = defined @SharedXML/Scroll/ScrollBoxListView.lua:448 SetScrollBox = defined @SharedXML/Scroll/ScrollBoxLinearView.lua:135 ReinitializeFrames = defined @SharedXML/Scroll/ScrollBoxListView.lua:535 RemoveDataProvider = defined @SharedXML/Scroll/ScrollBoxListView.lua:283 IsDataIndexWithinRange = defined @SharedXML/Scroll/ScrollBoxListView.lua:946 dataIndexEnd = 1 FindElementDataByPredicate = defined @SharedXML/Scroll/ScrollBoxListView.lua:199 GetDataIndexEnd = defined @SharedXML/Scroll/ScrollBoxListView.lua:933 SetInvalidationReason = defined @SharedXML/Scroll/ScrollBoxListView.lua:913 OnDataProviderSort = defined @SharedXML/Scroll/ScrollBoxListView.lua:318 GetSpacing = defined @SharedXML/Scroll/ScrollBoxLinearView.lua:53 RegisterCallback = defined @SharedXML/CallbackRegistry.lua:110 GetFrames = defined @SharedXML/Scroll/ScrollBoxView.lua:90 UnregisterCallback = defined @SharedXML/CallbackRegistry.lua:185 Release = defined @SharedXML/Scroll/ScrollBoxListView.lua:413 RegisterCallbackWithHandle = defined @SharedXML/CallbackRegistry.lua:154 initializerList =
{ } FindByPredicate = defined @SharedXML/Scroll/ScrollBoxListView.lua:207 GetExtentUnti

Hope this is abit usefull for you. If i need to test something let me know.

fubaWoW commented 9 months ago

does it happen when arkinventory is not installed?

not for me, also tested various times and only happens with ArkInventory (Core) enabled also resetted everything like @ala75 did, same results

arkayenro commented 9 months ago

so using one of those runes triggers a TRADE_SKILL_ITEM_CRAFTED_RESULT event once it applies, which then calls that function.

i'm loading the Blizzard_Professions addon which then loads that code.

i presume as part of that loading its registering the event listener (on the expectation that you just opened the profession pane) so is listening for that event - and when it triggers it breaks because the frame isnt actually open.

if you manually open the profession pane, then close it, you can apply the rune without getting an error

i'll need to find the part where it cleans up so i can include that in my code after the load which should stop it from erroring

ala75 commented 9 months ago

Your spot on! i justed tested it too like you said. opening the prof windows once, close it and applying a weapon rune. no error.

arkayenro commented 8 months ago

i havent found a workaround/fix for this yet. i can readily duplicate the issue in code without having to apply a rune, but every time i think i have it fixed at the code level it doesnt actually fix it when you use a rune.

i have moved the load addon part to a different area (where it should have already opened by that time) so it might (or might not) help.

ala75 commented 8 months ago

Hey Arkayenro,

Just tested it with the new ark version. I havent seen the error yet so thats good. Ill keep an eye out for it the coming week when i apply alot more runes while doing some m+/raids. 1st impression is that the workaround works :). ty for your effords.