Bug in Retail 10.1.7
GeoRam2016 opened this issue ยท 12 comments
2x BagBrother/core/features/caching.lua:93: attempt to compare number with nil
[string "@BagBrother/core/features/caching.lua"]:93: in function ?' [string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:109: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:109> [string "=[C]"]: ? [string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:19: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:15> [string "@Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:54: in function
Fire'
[string "@Ace3/AceEvent-3.0-4/AceEvent-3.0.lua"]:120: in function <Ace3/AceEvent-3.0/AceEvent-3.0.lua:119>
Locals:
self =
SendSignal = defined @BagBrother/libs/WildAddon-1.0/WildAddon-1.0.lua:82
ParseItem = defined @BagBrother/core/features/caching.lua:187
RegisterMessage = defined @Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:80
UnregisterMessage = defined @Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:143
SaveBag = defined @BagBrother/core/features/caching.lua:158
PLAYER_EQUIPMENT_CHANGED = defined @BagBrother/core/features/caching.lua:80
SaveEquip = defined @BagBrother/core/features/caching.lua:183
player =
}
SendMessage = defined @Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:49
GUILDBANKBAGSLOTS_CHANGED = defined @BagBrother/core/features/caching.lua:132
UnregisterAllEvents = defined @Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:164
UnregisterSignal = defined @BagBrother/libs/WildAddon-1.0/WildAddon-1.0.lua:78
VAULT_CLOSE = defined @BagBrother/core/features/caching.lua:119
PLAYER_MONEY = defined @BagBrother/core/features/caching.lua:88
BANK_CLOSE = defined @BagBrother/core/features/caching.lua:107
RegisterEvent = defined @Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:80
UnregisterAllMessages = defined @Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:164
CURRENCY_TRACKED_CHANGED = defined @BagBrother/core/features/caching.lua:96
NewModule = defined @BagBrother/libs/WildAddon-1.0/WildAddon-1.0.lua:68
PLAYER_LEVEL_UP = defined @BagBrother/core/features/caching.lua:84
OnEnable = defined @BagBrother/core/features/caching.lua:20
BAG_UPDATE = defined @BagBrother/core/features/caching.lua:74
RegisterSignal = defined @BagBrother/libs/WildAddon-1.0/WildAddon-1.0.lua:74
CURRENCY_DISPLAY_UPDATE = defined @BagBrother/core/features/caching.lua:92
GUILD_ROSTER_UPDATE = defined @BagBrother/core/features/caching.lua:128
UnregisterEvent = defined @Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:143
Tag = "BAGNON_"
}
_ = "CURRENCY_DISPLAY_UPDATE"
id = nil
quantity = nil
(*temporary) =
2088 = 1
2245 = 1
1585 = 7838
1586 = 2
515 = 13
824 = 114
1155 = 75
tracked =
}
1560 = 200
1220 = 170
2533 = 8
2087 = 1
2021 = 3
1716 = 6
1721 = 4
2032 = 7350
2002 = 1
2003 = 312
1755 = 102
81 = 2
1166 = 355
}
(*temporary) = nil
(*temporary) = "attempt to compare number with nil"
This bug also appears in WotLK Classic (3.4.2)
3x BagBrother/core/features/caching.lua:93: attempt to compare number with nil
[string "@BagBrother/core/features/caching.lua"]:93: in function `?'
[string "@Accountant_Classic/Libs/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:109: in function <...sic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:109>
[string "=[C]"]: ?
[string "@Accountant_Classic/Libs/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:19: in function <...sic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:15>
[string "@Accountant_Classic/Libs/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:54: in function `Fire'
[string "@Accountant_Classic/Libs/AceEvent-3.0-4/AceEvent-3.0.lua"]:120: in function <...ccountant_Classic/Libs/AceEvent-3.0/AceEvent-3.0.lua:119>
Locals:
self = <table> {
SendSignal = <function> defined @BagBrother/libs/WildAddon-1.0/WildAddon-1.0.lua:82
ParseItem = <function> defined @BagBrother/core/features/caching.lua:187
RegisterMessage = <function> defined @Accountant_Classic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:80
UnregisterMessage = <function> defined @Accountant_Classic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:143
SaveBag = <function> defined @BagBrother/core/features/caching.lua:158
PLAYER_EQUIPMENT_CHANGED = <function> defined @BagBrother/core/features/caching.lua:80
SaveEquip = <function> defined @BagBrother/core/features/caching.lua:183
player = <table> {
}
SendMessage = <function> defined @Accountant_Classic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:49
GUILDBANKBAGSLOTS_CHANGED = <function> defined @BagBrother/core/features/caching.lua:132
UnregisterAllEvents = <function> defined @Accountant_Classic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:164
UnregisterSignal = <function> defined @BagBrother/libs/WildAddon-1.0/WildAddon-1.0.lua:78
VAULT_CLOSE = <function> defined @BagBrother/core/features/caching.lua:119
PLAYER_MONEY = <function> defined @BagBrother/core/features/caching.lua:88
BANK_CLOSE = <function> defined @BagBrother/core/features/caching.lua:107
RegisterEvent = <function> defined @Accountant_Classic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:80
UnregisterAllMessages = <function> defined @Accountant_Classic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:164
CURRENCY_TRACKED_CHANGED = <function> defined @BagBrother/core/features/caching.lua:96
NewModule = <function> defined @BagBrother/libs/WildAddon-1.0/WildAddon-1.0.lua:68
PLAYER_LEVEL_UP = <function> defined @BagBrother/core/features/caching.lua:84
OnEnable = <function> defined @BagBrother/core/features/caching.lua:20
BAG_UPDATE = <function> defined @BagBrother/core/features/caching.lua:74
RegisterSignal = <function> defined @BagBrother/libs/WildAddon-1.0/WildAddon-1.0.lua:74
CURRENCY_DISPLAY_UPDATE = <function> defined @BagBrother/core/features/caching.lua:92
GUILD_ROSTER_UPDATE = <function> defined @BagBrother/core/features/caching.lua:128
UnregisterEvent = <function> defined @Accountant_Classic/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:143
Tag = "BAGNON_"
}
_ = "CURRENCY_DISPLAY_UPDATE"
id = nil
quantity = nil
(*temporary) = <table> {
1901 = 636
81 = 38
tracked = <table> {
}
}
(*temporary) = nil
(*temporary) = "attempt to compare number with nil"
I believe the fix is to change BagBrother/core/features/caching.lua:93 to:
self.player.currency[id] = quantity and quantity > 0 or nil
Same for me.
1x BagBrother/core/features/caching.lua:93: attempt to compare number with nil
[string "@BagBrother/core/features/caching.lua"]:93: in function ?' [string "@AllTheThings/lib/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:109: in function <...ings/lib/CallbackHandler-1.0/CallbackHandler-1.0.lua:109> [string "=[C]"]: ? [string "@AllTheThings/lib/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:19: in function <...ings/lib/CallbackHandler-1.0/CallbackHandler-1.0.lua:15> [string "@AllTheThings/lib/CallbackHandler-1.0-8/CallbackHandler-1.0.lua"]:54: in function
Fire'
[string "@DataStore/libs/AceEvent-3.0-4/AceEvent-3.0.lua"]:120: in function <DataStore/libs/AceEvent-3.0/AceEvent-3.0.lua:119>
Locals:
self =
SendSignal = defined @BagBrother/libs/WildAddon-1.0/WildAddon-1.0.lua:82
ParseItem = defined @BagBrother/core/features/caching.lua:187
RegisterMessage = defined @AllTheThings/lib/CallbackHandler-1.0/CallbackHandler-1.0.lua:80
UnregisterMessage = defined @AllTheThings/lib/CallbackHandler-1.0/CallbackHandler-1.0.lua:143
SaveBag = defined @BagBrother/core/features/caching.lua:158
PLAYER_EQUIPMENT_CHANGED = defined @BagBrother/core/features/caching.lua:80
SaveEquip = defined @BagBrother/core/features/caching.lua:183
player =
}
SendMessage = defined @AllTheThings/lib/CallbackHandler-1.0/CallbackHandler-1.0.lua:49
GUILDBANKBAGSLOTS_CHANGED = defined @BagBrother/core/features/caching.lua:132
UnregisterAllEvents = defined @AllTheThings/lib/CallbackHandler-1.0/CallbackHandler-1.0.lua:164
UnregisterSignal = defined @BagBrother/libs/WildAddon-1.0/WildAddon-1.0.lua:78
VAULT_CLOSE = defined @BagBrother/core/features/caching.lua:119
PLAYER_MONEY = defined @BagBrother/core/features/caching.lua:88
BANK_CLOSE = defined @BagBrother/core/features/caching.lua:107
RegisterEvent = defined @AllTheThings/lib/CallbackHandler-1.0/CallbackHandler-1.0.lua:80
UnregisterAllMessages = defined @AllTheThings/lib/CallbackHandler-1.0/CallbackHandler-1.0.lua:164
CURRENCY_TRACKED_CHANGED = defined @BagBrother/core/features/caching.lua:96
NewModule = defined @BagBrother/libs/WildAddon-1.0/WildAddon-1.0.lua:68
PLAYER_LEVEL_UP = defined @BagBrother/core/features/caching.lua:84
OnEnable = defined @BagBrother/core/features/caching.lua:20
BAG_UPDATE = defined @BagBrother/core/features/caching.lua:74
RegisterSignal = defined @BagBrother/libs/WildAddon-1.0/WildAddon-1.0.lua:74
CURRENCY_DISPLAY_UPDATE = defined @BagBrother/core/features/caching.lua:92
GUILD_ROSTER_UPDATE = defined @BagBrother/core/features/caching.lua:128
UnregisterEvent = defined @AllTheThings/lib/CallbackHandler-1.0/CallbackHandler-1.0.lua:143
Tag = "BAGNON_"
}
_ = "CURRENCY_DISPLAY_UPDATE"
id = nil
quantity = nil
(*temporary) =
829 = 10
1508 = 1367
2032 = 200
1540 = 31
1810 = 116
401 = 19
1906 = 200
1541 = 6
1716 = 600
2002 = 20
1828 = 14205
2402 = 13
2003 = 4800
823 = 28628
1813 = 4195
2118 = 25278
1226 = 2572
2087 = 20
1560 = 42309
1719 = 1865
1767 = 865
1275 = 65
1704 = 19
1101 = 27935
1149 = 1
777 = 19197
1816 = 3936
1721 = 547
2023 = 8
1166 = 2775
738 = 335
1754 = 11
1580 = 5
1977 = 38
1501 = 1
1533 = 788
1803 = 8875
1819 = 85
1883 = 10
2026 = 1
1534 = 5
1931 = 477
1820 = 100
1979 = 134
1535 = 19
2409 = 989
1710 = 71
2594 = 966
2533 = 2
1885 = 137
2245 = 164
1155 = 2000
1171 = 40
1822 = 79
2122 = 17
2088 = 30
1755 = 76960
824 = 6107
416 = 25
828 = 31
1172 = 86
1904 = 31
1585 = 17476
1728 = 230
2021 = 25
2009 = 872
2030 = 2
1889 = 9
1808 = 3
tracked =
}
1586 = 4
1342 = 125
1220 = 1880
821 = 27
394 = 15
}
(*temporary) = nil
(*temporary) = "attempt to compare number with nil"
I believe the fix is to change BagBrother/core/features/caching.lua:93 to:
self.player.currency[id] = quantity and quantity > 0 or nil
Nope :/ still get lua errors when you use ur hearthstone etc
I believe the fix is to change BagBrother/core/features/caching.lua:93 to:
self.player.currency[id] = quantity and quantity > 0 or nil
Nope :/ still get lua errors when you use ur hearthstone etc
Thank. I was just about to try it.
Different error on the same line... I fixed it with:
function Cacher:CURRENCY_DISPLAY_UPDATE(_, id, quantity)
if id then
self.player.currency[id] = quantity and quantity > 0 or nil
end
end
Not sure it this is logically the correct fix but it at least eliminates the error.
Different error on the same line... I fixed it with:
function Cacher:CURRENCY_DISPLAY_UPDATE(_, id, quantity) if id then self.player.currency[id] = quantity and quantity > 0 or nil end end
Not sure it this is logically the correct fix but it at least eliminates the error.
You can actually change this to just adding
if id then
self.player.currency[id] = quantity > 0 and quantity or nil
end
and it works fine. I'm guessing from the logs the id = nil is the start of the issue, so your check prevents the comparison to occur on a nil array index.
The original error was the "attempt to compare number with nil" which I fixed with changing the order. This then led to the indexing error (don't have exact text) because id was nil which I fixed with the if statement. I believe both fixes are necessary to prevent errors from line 93.
The original error was the "attempt to compare number with nil" which I fixed with changing the order. This then led to the indexing error (don't have exact text) because id was nil which I fixed with the if statement. I believe both fixes are necessary to prevent errors from line 93.
I tried both suggestions and neither one resolved the errors. I fixed the problem by reverting to version 10.1.4 now zero errors.
Different error on the same line... I fixed it with:
function Cacher:CURRENCY_DISPLAY_UPDATE(_, id, quantity) if id then self.player.currency[id] = quantity and quantity > 0 or nil end end
Not sure it this is logically the correct fix but it at least eliminates the error.
Thx work fine