Point Blank Sniper

Point Blank Sniper

99.1k Downloads

Increasing slowdown [and error] when repeatedly using Name Search

tflo opened this issue · 18 comments

commented

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.

commented

For some reason I cannot reopen this issue. Going to create a new reference.

commented

By slowdown do you mean the AH responses slow (fast UI, no tearing), or that the client slows down (slow/crashy client and tearing)?

commented

Also, which mode are you using?

commented

Update: I've replicated the slowdown. Just investigating to find where it comes from.

commented

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):

WoWScrnShot_081823_151042
commented

(for the slowdown, not the nil errors0

commented

Sorry, seems I cross-posted with your update. But the various errors with the other modes might be of interest too.

commented

I've found the bug now. Just getting a fix ready.

commented

Great! Thanks.

commented

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)

commented

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

commented

This error appears before you attempt to click on an item to buy it?

commented

Replicated the error now (I didn't have carry on off)

commented

Yeah, error comes when clicking the Sniper tab.

commented

Found a fix. Will be available in 5.32 from Curseforge and I'll link a copy here when it finishes building

commented

Great, thanks again!

commented

Finally fixed version:
PointBlankSniper-5.32.zip

commented

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.)