Are you sure that you're not working on a parent model, that's somehow cached and therefore out-dated when you start one of those "non-atomic" transactions?
Just a guess... Regards, Andi 2010/4/23, Felix E. Klee <[email protected]>: > I may sound like an idiot for writing this, and I hope I am, but: > > Occasionally, I see an inconsistency in the data store which I > attribute to a certain transaction being non-atomic. Happens only in > the live application AFAICS. And it's hard to reproduce. > > In the datastore, I have a parent-child relation, modeled using two > classes: > > * Parent: Exactly one parent, "main". It has a property called > "version" that is bumped up each time the family changes. > > * Child: Various children of the parent. > > Here is what happens in *one* transaction, called using > db.run_in_transaction: > > 1. A child is added. > > 2. The "version" of the parent is increased. > > Now, sometimes (unfortunately), after that transaction has executed, I > see the following inconsistency: > > 1. A child has been added. > > 2. The "version" has not been increased. > > To sum it up: Are there any known issues with App Engine's transaction > handling? Is there anything that I could've done wrong? Has anyone > ever seen something like this before? > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
