Hello,

The Appengine Datastore has been throwing lots of timeout and
contention errors these last couple of days (9/14, 9/15) due to
latency spikes. One error in particular has resulted in duplicate
items getting pushed to subscribers.

At the end of a push_event, after all the subscribers have been
notified a datastore Delete is performed. When this error occurs the
hub attempts to process the push_event again resulting in duplicate
items getting sent to subscribers. Even though the datastore has given
up performing

The push_event log entries include the normal debug messages
concluding with the following:

EventToDeliver complete: ...  delivery_mode = normal

too much contention on these datastore entities. please try again.
Traceback (most recent call last):
  File "/base/python_runtime/python_lib/versions/1/google/appengine/
ext/webapp/__init__.py", line 513, in __call__
    handler.post(*groups)
  File "/base/data/home/apps/bringit-pshb-test-1/1-0-alpha.
343674745300678296/main.py", line 648, in decorated
    return func(myself, *args, **kwargs)
  File "/base/data/home/apps/bringit-pshb-test-1/1-0-alpha.
343674745300678296/main.py", line 2672, in post
    work.update(more_subscribers, failed_callbacks)
  File "/base/data/home/apps/bringit-pshb-test-1/1-0-alpha.
343674745300678296/main.py", line 1544, in update
    self.delete()
  File "/base/python_runtime/python_lib/versions/1/google/appengine/
ext/db/__init__.py", line 940, in delete
    datastore.Delete(self.key(), rpc=rpc)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/
api/datastore.py", line 397, in Delete
    raise _ToDatastoreError(err)
TransactionFailedError: too much contention on these datastore
entities. please try again.

Reply via email to