(This is the first of a series of “fixing things” posts that will give some insight into the kinds of bugs and issues we encounter, and how we investigate and solve them.)
This week I’d like to talk about hunting and shooting. That is, bug hunting and trouble shooting.
“tag” is not “Tag”
In the past week, we tracked down a bug related to the recently changed tagging. One of the players on the platform discovered that they had two tags in their People Index called “retainer” and “Retainer”.
For humans, these two tags are the same. Computers, however, see that “r” is not the same as “R” and that’s that: they immediately conclude that these must be two separate tags. Both words showed up in the filter dropdown, and both words showed up as headers when grouping by tag. This is, of course, not how we want the system to behave.
After finding the segment of code where the people index is build up, we fixed the system so that it recognizes when two (or more) tags should be the same, and it uses the “majority vote” spelling for all of them. Now the system can see what the most commonly used spelling for the tag is, and use that instead of the exact spelling. This neatly solves the issue in a way that also helps everyone using your wiki to discover the preferred tag name.
We also ran into a bit of trouble with the live site as we discovered that it was unavailable for a few hours this week. After thorough investigation of the issue we discovered that, well, the site was unavailable because we want to be sure that the site is not unavailable!
It turns out that the site was unavailable because of our desire to make sure that we never loose any of your campaign data. We make daily backup to ensure that you do not lose your campaign in case of unlikely events (such as meteor strikes, fires in the data centre, or the site fudging up your data after an update). And after a year of running backups every day, these backups take up a lot of space.
We resolved the stability issue by manually staggering the older backups to make sure that we still have the monthly backups, but thinning out some of the daily backups. This allows is to very accurately restore recent backups without the large storage space requirement. We will be looking into an automated method for managing the long-term backups, because we want to guarantee that your campaign data is safe!