Increasing slowdown [and error] when repeatedly using Name Search
tflo opened this issue · 18 comments
When I repeatedly do this…
Sniping tab --> select a thing --> Name Search --> back to Sniping tab --> select a different thing --> Name Search …
…I get a considerable and increasing slowdown.
If I do it often enough I get the OS's "application busy" cursor and (sometimes?) this error:
Main.lua:200: attempt to index field 'rawSearchTermInfo' (a nil value)
34x PointBlankSniper/Source/Buy/Main.lua:200: attempt to index field 'rawSearchTermInfo' (a nil value)
[string "@PointBlankSniper/Source/Buy/Main.lua"]:200: in function `UpdateSearchTermButtons'
[string "@PointBlankSniper/Source/Buy/Main.lua"]:224: in function `ReceiveEvent'
[string "@Auctionator/Source/Utilities/EventBusMixin.lua"]:77: in function `Fire'
[string "@PointBlankSniper/Source/Tab/Main.lua"]:218: in function `ReceiveEvent'
[string "@Auctionator/Source/Utilities/EventBusMixin.lua"]:77: in function `Fire'
[string "@PointBlankSniper/Source/Scan/NameCache.lua"]:223: in function `ProcessCachedResults'
[string "@PointBlankSniper/Source/Scan/NameCache.lua"]:102: in function `callback'
[string "@Auctionator/Source_Mainline/AH/Mixins/ItemKeyLoader.lua"]:36: in function `Get'
[string "@Auctionator/Source_Mainline/AH/Mixins/ItemKeyLoader.lua"]:80: in function <...tionator/Source_Mainline/AH/Mixins/ItemKeyLoader.lua:68>
Locals:
self = Frame {
0 = <userdata>
NameSearch = <function> defined @PointBlankSniper/Source/Buy/Main.lua:153
RemoveSearchTerm = <function> defined @PointBlankSniper/Source/Buy/Main.lua:190
Price = FontString {
}
layoutType = "SimplePanelTemplate"
buyCommodity = false
ViewAll = <function> defined @PointBlankSniper/Source/Buy/Main.lua:145
summaryResultsCount = 2
ReceiveEvent = <function> defined @PointBlankSniper/Source/Buy/Main.lua:205
NameSearchButton = Button {
}
expectedItemKey = <table> {
}
OnEvent = <function> defined @PointBlankSniper/Source/Buy/Main.lua:38
BuyButton = Button {
}
OnLoad = <function> defined @PointBlankSniper/Source/Buy/Main.lua:10
OnHide = <function> defined @PointBlankSniper/Source/Buy/Main.lua:17
UpdateSearchTermButtons = <function> defined @PointBlankSniper/Source/Buy/Main.lua:199
BuyNow = <function> defined @PointBlankSniper/Source/Buy/Main.lua:133
gotResult = false
NormalSearch = Button {
}
SearchTerm = FontString {
}
RemoveSearchTermButton = Button {
}
expectedPrice = 990000
Icon = Frame {
}
Reset = <function> defined @PointBlankSniper/Source/Buy/Main.lua:27
UpdateBuyState = <function> defined @PointBlankSniper/Source/Buy/Main.lua:110
}
(*temporary) = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:89
(*temporary) = <table> {
Delete = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:93
Prune = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:54
Init = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:6
setData = <function> defined @Auctionator/Source/Variables/Main.lua:116
Create = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:21
getData = <function> defined @Auctionator/Source/Variables/Main.lua:115
GetCount = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:78
FireItemChangeEvent = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:114
Sort = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:38
GetByName = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:89
FireMetaChangeEvent = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:118
GetIndexForName = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:68
GetUnusedName = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:102
GetByIndex = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:82
}
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to index field 'rawSearchTermInfo' (a nil value)"
Re-opening the AH frame does not reset it.
By slowdown do you mean the AH responses slow (fast UI, no tearing), or that the client slows down (slow/crashy client and tearing)?
Update: I've replicated the slowdown. Just investigating to find where it comes from.
By slowdown do you mean the AH responses slow (fast UI, no tearing), or that the client slows down (slow/crashy client and tearing)?
The slowdown (and later on the OS's "busy' cursor) is when I click the Named Search button. The Blizzard Buy button is not affected. Also anything else doesn't seem to be affected.
Also, which mode are you using?
It was in Blank mode.
Just tried to test it in Keys mode (after reload), but I get an error right on loading the Sniper tab:
Main.lua:157: attempt to index field 'info' (a nil value)
4x PointBlankSniper/Source/Buy/Main.lua:157: attempt to index field 'info' (a nil value)
[string "@PointBlankSniper/Source/Buy/Main.lua"]:157: in function `NameSearch'
[string "*Main.xml:66_OnClick"]:1: in function <[string "*Main.xml:66_OnClick"]:1>
Locals:
self = Frame {
0 = <userdata>
NameSearch = <function> defined @PointBlankSniper/Source/Buy/Main.lua:153
RemoveSearchTerm = <function> defined @PointBlankSniper/Source/Buy/Main.lua:190
Price = FontString {
}
layoutType = "SimplePanelTemplate"
buyCommodity = false
ViewAll = <function> defined @PointBlankSniper/Source/Buy/Main.lua:145
summaryResultsCount = 4
ReceiveEvent = <function> defined @PointBlankSniper/Source/Buy/Main.lua:205
NameSearchButton = Button {
}
expectedItemKey = <table> {
}
OnEvent = <function> defined @PointBlankSniper/Source/Buy/Main.lua:38
BuyButton = Button {
}
OnLoad = <function> defined @PointBlankSniper/Source/Buy/Main.lua:10
OnHide = <function> defined @PointBlankSniper/Source/Buy/Main.lua:17
UpdateSearchTermButtons = <function> defined @PointBlankSniper/Source/Buy/Main.lua:199
BuyNow = <function> defined @PointBlankSniper/Source/Buy/Main.lua:133
gotResult = false
NormalSearch = Button {
}
SearchTerm = FontString {
}
RemoveSearchTermButton = Button {
}
expectedPrice = 200000
Icon = Frame {
}
Reset = <function> defined @PointBlankSniper/Source/Buy/Main.lua:27
UpdateBuyState = <function> defined @PointBlankSniper/Source/Buy/Main.lua:110
}
(*temporary) = <function> defined @Auctionator/Source/API/v1/MultiSearch.lua:53
(*temporary) = "Point Blank Sniper"
(*temporary) = <table> {
}
(*temporary) = nil
(*temporary) = "attempt to index field 'info' (a nil value)"
This error is repeatable for me (with reloads). Keys mode seems broken.
OK, now I tried "No gear" mode, and I get this again…
Main.lua:200: attempt to index field 'rawSearchTermInfo' (a nil value)
3x PointBlankSniper/Source/Buy/Main.lua:200: attempt to index field 'rawSearchTermInfo' (a nil value)
[string "@PointBlankSniper/Source/Buy/Main.lua"]:200: in function `UpdateSearchTermButtons'
[string "@PointBlankSniper/Source/Buy/Main.lua"]:224: in function `ReceiveEvent'
[string "@Auctionator/Source/Utilities/EventBusMixin.lua"]:77: in function `Fire'
[string "@PointBlankSniper/Source/Tab/Main.lua"]:218: in function `ReceiveEvent'
[string "@Auctionator/Source/Utilities/EventBusMixin.lua"]:77: in function `Fire'
[string "@PointBlankSniper/Source/Scan/KeyCache.lua"]:133: in function `ProcessResults'
[string "@PointBlankSniper/Source/Scan/KeyCache.lua"]:156: in function <...acePointBlankSniper/Source/Scan/KeyCache.lua:151>
Locals:
self = Frame {
0 = <userdata>
NameSearch = <function> defined @PointBlankSniper/Source/Buy/Main.lua:153
RemoveSearchTerm = <function> defined @PointBlankSniper/Source/Buy/Main.lua:190
Price = FontString {
}
layoutType = "SimplePanelTemplate"
buyCommodity = false
ViewAll = <function> defined @PointBlankSniper/Source/Buy/Main.lua:145
summaryResultsCount = 4
ReceiveEvent = <function> defined @PointBlankSniper/Source/Buy/Main.lua:205
NameSearchButton = Button {
}
expectedItemKey = <table> {
}
OnEvent = <function> defined @PointBlankSniper/Source/Buy/Main.lua:38
BuyButton = Button {
}
OnLoad = <function> defined @PointBlankSniper/Source/Buy/Main.lua:10
OnHide = <function> defined @PointBlankSniper/Source/Buy/Main.lua:17
UpdateSearchTermButtons = <function> defined @PointBlankSniper/Source/Buy/Main.lua:199
BuyNow = <function> defined @PointBlankSniper/Source/Buy/Main.lua:133
gotResult = false
NormalSearch = Button {
}
SearchTerm = FontString {
}
RemoveSearchTermButton = Button {
}
expectedPrice = 200000
Icon = Frame {
}
Reset = <function> defined @PointBlankSniper/Source/Buy/Main.lua:27
UpdateBuyState = <function> defined @PointBlankSniper/Source/Buy/Main.lua:110
}
(*temporary) = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:89
(*temporary) = <table> {
Delete = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:93
Prune = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:54
Init = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:6
setData = <function> defined @Auctionator/Source/Variables/Main.lua:116
Create = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:21
getData = <function> defined @Auctionator/Source/Variables/Main.lua:115
GetCount = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:78
FireItemChangeEvent = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:114
Sort = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:38
GetByName = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:89
FireMetaChangeEvent = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:118
GetIndexForName = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:68
GetUnusedName = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:102
GetByIndex = <function> defined @Auctionator/Source/Shopping/Mixins/ListManager.lua:82
}
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to index field 'rawSearchTermInfo' (a nil value)"
So, "No gear" mode seems to be broken too (for me).
The focus of my sniping search ("Item Class") was "Battle Pets" (the category):
Sorry, seems I cross-posted with your update. But the various errors with the other modes might be of interest too.
Thanks for the bug report.
The bug resided in Auctionator, and PBS just triggered it a lot with the Name Search. Can you update to the below version of Auctionator:
Auctionator-10.1.16-8-g5d96f9f.zip
(and if you aren't on the latest version of pbs please update that too)
Updated with your zip. Now I get the 'rawSearchTermInfo' error from Main.lua, line 200 (see above) already on opening the Sniper also with Blank mode set.
Auctionator: 10.1.16-8-g5d96f9f
Sniper: 5.31
Found a fix. Will be available in 5.32 from Curseforge and I'll link a copy here when it finishes building
Finally fixed version:
PointBlankSniper-5.32.zip
The increasing delay seems to have gone, great! The aforementioned errors in Blank, Keys, and No gear mode too. Though I still get an error ('rawSearchTermInfo') in Threshold mode. (At opening the Sniper tab, repeatable with reloads.)
As a side note: The Keys and No gear modes expose a delay when going back from the Shopping tab to the Sniper tab. I haven't payed attention if it always was like that, or if this is normal. (In Blank mode, there is no delay.)