Google App Engine: Too Many Bugs?
I know that Google App Engine is “Beta” and all that. I also know that there are ways to work around both of the egregious bugs I have run into so far. However, after spending a large amount of driving time and downtime during my recent visit to Glacier National Park to refactor a huge amount of code in Concurr in part to work around the first of these bugs, only to be thwarted by the second bug, it begins to feel like Google App Engine is too immature for the real world. I mean, for heaven’s sake, I’m working on a simplistic game and GAE seems too immature even for that.
The first bug, we seem to be the first to discover: sometimes, entities in the data store don’t actually get deleted when App Engine says that they are deleted. I was able to work around this bug by adding a “valid” field to fleets, and invalidating any fleets that should never be returned again. Since storing updates (“putting”) to the data store always seems to work, this workaround seems to be effective. But the fact that it is necessary is disturbing.
The second bug had been discovered before I ran in to it; it was first reported way back in May, but it remains unresolved.
Unfixed four months later, I have to question whether the bug will ever be fixed.
And with two bugs of this magnitude, I have to wonder what other problems lie out in the murky depths. Certainly, I would not trust a “real” application to GAE. At this point, I think going towards the traditional server/database model is the right move for Concurr, and again, it is just a silly game that I happen to love.
September 23rd, 2008 at 10:15:08 pm
For the first time ever I can really understand why people want a phone number… or at least an email address that they can use to communicate directly with engineers.
October 2nd, 2008 at 11:26:46 pm
hi ryan! sorry for the trouble. i actually checked in a fix earlier today for the second bug you mentioned, the one that sometimes ignored ancestor indexes depending on the order they were created.
i haven’t heard many reports of the first one, deletes that don’t take effect. if you have an (even somewhat) reproducible test case, i’d be happy to take a look.