AppEngine Error "Clearly Canceled"

I am using Google AppEngine and a deferred library with the Mapper class, as described here (with some improvements, as in here ). In some iterations of the converter, I get the following error:

 CancelledError: The API call datastore_v3.Put() was explicitly cancelled. 

The mapper usually works fine, I had a higher batch size, so it would really hit a DeadlineExceededError , and that was handled correctly.

To be sure, I reduced batch_size to a very low number so that it doesn't even fall into DeadlineExceededError , but I still get a CancelledError .

The stack trace is as follows:

 File "utils.py", line 114, in _continue self._batch_write() File "utils.py", line 76, in _batch_write db.put(self.to_put) File "/google/appengine/ext/db/__init__.py", line 1238, in put keys = datastore.Put(entities, rpc=rpc) File "/google/appengine/api/datastore.py", line 255, in Put 'datastore_v3', 'Put', req, datastore_pb.PutResponse(), rpc) File "/google/appengine/api/datastore.py", line 177, in _MakeSyncCall rpc.check_success() File "/google/appengine/api/apiproxy_stub_map.py", line 474, in check_success self.__rpc.CheckSuccess() File "/google/appengine/api/apiproxy_rpc.py", line 126, in CheckSuccess raise self.exception CancelledError: The API call datastore_v3.Put() was explicitly cancelled. 

I cannot find much information about this "exicity canceled" error, so I was wondering what caused this and how to investigate.

+4
source share
1 answer

After DeadlineExceededError you are allowed to shorten the response time to handle the exception, for example, defer the remainder of the calculation.

If you have run out of extraction time, a CancelledError triggered.

Unable to catch / handle a CancelledError

+1
source

Source: https://habr.com/ru/post/1301063/


All Articles