Skip to content
This repository has been archived by the owner on Aug 19, 2022. It is now read-only.
This repository has been archived by the owner on Aug 19, 2022. It is now read-only.

Re-arranging tabs while acquisition is in the process of fetching tabs can cause pricing loss #383

Closed
@ericsium

Description

Currenly acquisition takes a 'snapshot' of the tabs names and related tab index values when it fetches the first tab. It then proceeds to attempt to fetch all the remaining user tabs by their respective index. The snapshotted index is used to associate with the tab name as the tab fetch itself doesn't include the tab name.

The problem is that we can only fetch a limited amount of tabs at once before being throttled so we need to wait 1 minutes between tab fetches occasionally. GGG API issues can cause throttling to occur more frequently as well. If a user happens to move a tab during this wait period the tab index changes and our previous snapshot of indicies/tab names is no longer valid. Future fetches will then effectively incorrectly associate tab names and items.

Since users have so many tabs in standard leauges it's much more likely this problem would be exposed there.

Pricing information in particular is sensitive to tab name as we hash in the name of the tab as part of the buyout object. When this condition happens the items which previosly had a buyout now have a differnt hash due to being associated with the wrong tab name and the orphaned buyout object will be garbage collected.

To fix this we must detect when this condition happens and abort the update.

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions