Ongoing Data Corruption
tflo opened this issue · 8 comments
Description
I’m experiencing regular corruptions of the SavedVariables file. ‘Regular’ means: roughly every week or 2 weeks, sometimes more frequently.
After this had happened a couple of times I put a background script in place that creates a copy of the Auctionator SavedVariables file on every file write and alerts me of unusual file size changes (typically when a corrupted SV file is replaced by a fresh one on toon logout).
So, no data loss, however I would prefer not to have to do this ;)
This is a typical example for a corrupted file:
…and the error output when this happened:
> BugSack output, click me
2x ...F\Account\464088657#1\SavedVariables\Auctionator-9.2.17.lua:856841: attempt to call global 'nan' (a nil value)
[string "@WTF\Account\464088657#1\SavedVariables\Auctionator-9.2.17.lua"]:856841: in main chunk
Locals:
(*temporary) = <table> {
Draenor = <table> {
}
Kazzak = <table> {
}
__dbversion = 6
}
(*temporary) = "AzjolNerub"
(*temporary) = <table> {
76078 = <table> {
}
33867 = <table> {
}
10023 = <table> {
}
36078 = <table> {
}
166815 = <table> {
}
p:1151 = <table> {
}
36235 = <table> {
}
187727 = <table> {
}
55300 = <table> {
}
114812 = <table> {
}
176799 = <table> {
}
14047 = <table> {
}
161966 = <table> {
}
184100 = <table> {
}
106749 = <table> {
}
15408 = <table> {
}
36464 = <table> {
}
71023 = <table> {
}
75078 = <table> {
}
190726 = <table> {
}
24867 = <table> {
}
11023 = <table> {
}
168662 = <table> {
}
187915 = <table> {
}
18661 = <table> {
}
g:173243:262 = <table> {
}
118877 = <table> {
}
p:2585 = <table> {
}
36300 = <table> {
}
115464 = <table> {
}
25047 = <table> {
}
25078 = <table> {
}
159609 = <table> {
}
12408 = <table> {
}
13464 = <table> {
}
10009 = <table> {
}
128843 = <table> {
}
47645 = <table> {
}
109219 = <table> {
}
93464 = <table> {
}
172438 = <table> {
}
188948 = <table> {
}
10235 = <table> {
}
14123 = <table> {
}
24123 = <table> {
}
33408 = <table> {
}
94047 = <table> {
}
14464 = <table> {
}
159845 = <table> {
}
164515 = <table> {
}
31235 = <table> {
}
116677 = <table> {
}
78300 = <table> {
}
18300 = <table> {
}
15123 = <table> {
}
25123 = <table> {
}
116260 = <table> {
}
75123 = <table> {
}
106321 = <table> {
}
25661 = <table> {
}
52078 = <table> {
}
13000 = <table> {
}
82078 = <table> {
}
55661 = <table> {
}
62078 = <table> {
}
g:172252:262 = <table> {
}
116614 = <table> {
}
38867 = <table> {
}
14661 = <table> {
}
98867 = <table> {
}
153664 = <table> {
}
37743 = <table> {
}
74661 = <table> {
}
31216 = <table> {
}
166804 = <table> {
}
143754 = <table> {
}
174327 = <table> {
}
165518 = <table> {
}
g:172314:225 = <table> {
}
g:171418:291 = <table> {
}
27661 = <table> {
}
47626 = <table> {
}
82023 = <table> {
}
12023 = <table> {
}
121151 = <table> {
}
31867 = <table> {
}
142266 = <table> {
}
116804 = <table> {
}
24078 = <table> {
}
60216 = <table> {
}
40216 = <table> {
}
10216 = <table> {
}
14235 = <table> {
}
128877 = <table> {
}
36519 = <table> {
}
p:1345 = <table> {
}
164327 = <table> {
}
159813 = <table> {
}
158867 = <table> {
}
g:173248:225 = <table> {
}
169132 = <table> {
}
159167 = <table> {
}
13023 = <table> {
}
p:1966 = <table> {
}
p:2438 = <table> {
}
76661 = <table> {
}
83078 = <table> {
}
25235 = <table> {
}
82000 = <table> {
}
g:186358:239 = <table> {
}
179369 = <table> {
}
67047 = <table> {
}
173074 = <table> {
}
p:1245 = <table> {
}
p:2704 = <table> {
}
112164 = <table> {
}
46009 = <table> {
}
36009 = <table> {
}
16009 = <table> {
}
87429 = <table> {
}
170314 = <table> {
}
24834 = <table> {
}
109126 = <table> {
}
14834 = <table> {
}
121189 = <table> {
}
172250 = <table> {
}
20661 = <table> {
}
109132 = <table> {
}
15009 = <table> {
}
25009 = <table> {
}
24822 = <table> {
}
174789 = <table> {
}
44822 = <table> {
}
74822 = <table> {
}
29504 = <table> {
}
49504 = <table> {
}
g:171415:262 = <table> {
}
24743 = <table> {
}
14743 = <table> {
}
14429 = <table> {
}
43661 = <table> {
}
159477 = <table> {
}
112498 = <table> {
}
173129 = <table> {
}
55429 = <table> {
}
190953 = <table> {
}
15743 = <table> {
}
32661 = <table> {
}
25429 = <table> {
}
15429 = <table> {
}
55743 = <table> {
}
36429 = <table> {
}
60388 = <table> {
}
152638 = <table> {
}
87504 = <table> {
}
10388 = <table> {
}
12009 = <table> {
}
59464 = <table> {
}
152494 = <table> {
}
12429 = <table> {
}
21953 = <table> {
}
71953 = <table> {
}
36743 = <table> {
}
154812 = <table> {
}
36123 = <table> {
}
20867 = <table> {
}
38834 = <table> {
}
76504 = <table> {
}
p:834 = <table> {
}
93429 = <table> {
}
36504 = <table> {
}
172350 = <table> {
}
162010 = <table> {
}
175549 = <table> {
}
p:1766 = <
Any idea where these -nan(ind)
artifacts come from?
In the file from the screenshot I found 3 instances, in the corrupted file from today I found 1.
I only recently started to look closer at the corrupted files, so it is not sure that the corruption always has been like this.
Other enabled add-ons:
I’m running different add-on sets (banker, AH toon, normal toon, etc.) and I saw the corruption happening with at least two different add-on sets (AH toon and Normal toon resting), probably more. See attachment for lists.
Auctionator version
Currently 9.2.17
But I saw this first happening around December/January, not entirely sure.
I’m playing on a Mac, in case this could matter.
Attached you find:
- Two corrupted files (the screenshot one and from today)
- Two typical add-on sets while this happened
I've pushed a fix that should prevent this from happening again (available in the latest alpha). It will go out in the next normal release once its been tested in alpha.
Auctionator-9.2.17-3-gccf20cb.zip
For some reason a Blizzard API for auctions found would have been returning 0 available when its meant to always more than 0, breaking the minimum price calculation.
Not really. The bad value could only have come from one place, and that caused an accidental division by 0 because an API that shouldn't ever return 0 did.