There are a number of players who have bought stars who are not having their All Star plat acknowledged: http://bots4.net/trophies/4 . There are a number of players who still have 0 plats associated with their account, despite the plat actually showing up in their trophy tally. This seems to be only affecting those players that haven't obtained any plats other than the All Star plat, however interestingly there are some that have had theirs acknowledged despite it being the only plat they've obtained. Whether the players actually received their trophy points for the stars, or their buff discounts would also be in question.
bugs
2019-11-21 21:32:54
[5 years, 1 day ago] |
|
Administrator 2019-11-21 23:00:30
[5 years, 1 day ago] |
Thanks for the report. PayPal changed something some time ago and I haven't updated the game to handle it yet, so I've been assigning stars manually for awhile now. I have a checklist so that the process is consistent, but it's possible the process I'm using is missing a step vs. what used to happen automatically. I should have some time to review more closely within the next few days, so stay tuned for an update. |
Administrator 2019-11-27 00:44:38
[4 years, 361 days ago] |
I ended up not yet having a chance to review this more closely and will now be traveling for a few days for Thanksgiving. Will review within the next week or so. |
Administrator 2019-12-08 21:10:33
[4 years, 349 days ago] |
Sorry for the delay, just spent some time looking into this. Unfortunately, I'm having trouble convincing myself there's a problem:
Myriad, can you (or anyone else) provide a specific example of what you're seeing? |
2019-12-08 21:31:19
[4 years, 349 days ago] |
Click this link: http://bots4.net/trophies/4 On that list I count 8 players that have an empty slot in the plat column. If you open any of their profiles, the All Star plat will be listed, but their plat count is still 0 |
2019-12-09 08:38:35
[4 years, 349 days ago] |
http://bots4.net/profile/70165/Prophet just one for example |
2019-12-09 08:39:14
[4 years, 349 days ago] |
Platinum (0) 2019-11-10 02:16:06 [29 days ago] platinum All Star (x10) Bought a star. |
Administrator 2019-12-09 23:08:23
[4 years, 348 days ago] |
Oh right, thanks - I see what you mean now. tl;dr: The problem isn't fixed yet. I'm not sure of the cause/scope yet. Current signs suggest this is not a new problem and has actually been a problem from day 1. Gory details: Well this is an interesting one. I haven't gotten to the bottom of it yet. The main thing to note is that the platinum count for each bot is not calculated on the fly, but is actually a field with the number of platinums for each bot. The number gets shown in so many places, so I decided awhile back to keep an aggregated count persisted in the database separate from the individual trophy rows. Anyone that's worked with data knows the perils of this approach - if you duplicate your data, you risk running into inconsistencies (e.g. you have 3 rows in the trophy table, but then you somehow end up storing an aggregated count of 2 instead of 3). Normally this inconsistency is avoided with database triggers (a somewhat controversial database mechanism). These triggers kick off anytime the trophies table is added to, updated, or deleted from. In theory, that should be enough to keep these totals in sync. However, that's obviously not working in certain cases. I compared raw base data to aggregated data to look for inconsistencies. I found the following:
So I think I'm circling in on the problem, and have some theories, but I need more time to investigate. |
Administrator 2019-12-14 18:19:22
[4 years, 343 days ago] |
tl;dr: This bug is now fixed. The only impact was to the displayed platinum count and buff discount. Trophy points were unaffected. Details below for those curious... This ended up being a fairly insane bug. It took me a few hours to track down. I was unable to reproduce it in my local setup, even when rolling the database back to the day affected bots bought stars and then replaying their star purchases. Quite perplexing. The problem ended up being in the end-of-month script. This is the script that runs automatically at the end of each month to decide clan winners, give out trophies, and so on. As an optimization, it disables database triggers because of the large number of trophies being given out - instead, the aforementioned inconsistencies are resolved by running a copy of the trigger at the end of the script. The problem was the trigger copy. It wasn't an exact copy. It had a small error that the real trigger at one point had. The small error was reported and fixed way back in 2011, but unfortunately I fixed only the actual trigger, not the copy in the end-of-month script. So yeah, this was a pretty interesting and unique bug. It doesn't take effect right away and actually repairs itself the next time you obtain any trophy (because the real trigger runs). This probably explains why it went unnoticed for over 8 years - it likely only affected inactive players. I should probably also reevaluate whether the game's use of database triggers can be replaced with something easier to reason about and less error-prone. |
<Torment>
2019-12-15 01:25:07
[4 years, 343 days ago] |
good work you sexy mf |
2019-12-15 16:59:31
[4 years, 343 days ago] |
Good job Ender and it's cool you explain what happened. |