I have a random crash while querying. It happens from time to time (once or twice a week) and most of the time things just work. Traceback says about missing context but the code already within NDB client's context. I'm not using threading like in #128 so seems it is a something different.
python-ndb == 0.0.1
Code example
class Settings(ndb.Model):
name = ndb.StringProperty()
value = ndb.StringProperty()
@classmethod
def get(cls, name):
with ndb.Client().context():
entity = cls.query(Settings.name == name).get() # <== exception raises here
return entity.value
Stack trace
Traceback (mostrecentcalllast):
File"/env/lib/python3.7/site-packages/flask/app.py", line2292, inwsgi_appresponse=self.full_dispatch_request()
File"/env/lib/python3.7/site-packages/flask/app.py", line1815, infull_dispatch_requestrv=self.handle_user_exception(e)
File"/env/lib/python3.7/site-packages/flask/app.py", line1718, inhandle_user_exceptionreraise(exc_type, exc_value, tb)
File"/env/lib/python3.7/site-packages/flask/_compat.py", line35, inreraiseraisevalueFile"/env/lib/python3.7/site-packages/flask/app.py", line1813, infull_dispatch_requestrv=self.dispatch_request()
File"/env/lib/python3.7/site-packages/flask/app.py", line1799, indispatch_requestreturnself.view_functions[rule.endpoint](**req.view_args)
File"/srv/lesivka_www/routes/www.py", line35, intemplate_viewreturnrender_template(template)
File"/env/lib/python3.7/site-packages/flask/templating.py", line133, inrender_templatectx.app.update_template_context(context)
File"/env/lib/python3.7/site-packages/flask/app.py", line792, inupdate_template_contextcontext.update(func())
File"/srv/main.py", line19, intemplate_injectionTRACKING_ID=Settings.get('TRACKING_ID'),
File"/srv/lesivka_www/storage.py", line14, ingetentity=cls.query(Settings.name==name).get()
File"/env/lib/python3.7/site-packages/google/cloud/ndb/query.py", line1180, inwrapperreturnwrapped(self, *dummy_args, _options=query_options)
File"/env/lib/python3.7/site-packages/google/cloud/ndb/query.py", line2019, ingetreturnself.get_async(_options=_options).result()
File"/env/lib/python3.7/site-packages/google/cloud/ndb/tasklets.py", line190, inresultself.check_success()
File"/env/lib/python3.7/site-packages/google/cloud/ndb/tasklets.py", line134, incheck_successself.wait()
File"/env/lib/python3.7/site-packages/google/cloud/ndb/tasklets.py", line126, inwait_eventloop.run1()
File"/env/lib/python3.7/site-packages/google/cloud/ndb/_eventloop.py", line411, inrun1loop.run1()
File"/env/lib/python3.7/site-packages/google/cloud/ndb/_eventloop.py", line344, inrun1delay=self.run0()
File"/env/lib/python3.7/site-packages/google/cloud/ndb/_eventloop.py", line333, inrun0callback(rpc)
File"/env/lib/python3.7/site-packages/google/cloud/ndb/tasklets.py", line323, indone_callback_eventloop.call_soon(self._advance_tasklet, yielded.result())
File"/env/lib/python3.7/site-packages/google/cloud/ndb/_eventloop.py", line380, incall_soonloop=get_event_loop()
File"/env/lib/python3.7/site-packages/google/cloud/ndb/_eventloop.py", line368, inget_event_loopcontext=context_module.get_context()
File"/env/lib/python3.7/site-packages/google/cloud/ndb/context.py", line78, inget_contextraiseexceptions.ContextError()
google.cloud.ndb.exceptions.ContextError: Nocurrentcontext. NDBcallsmustbemadeincontextestablishedbygoogle.cloud.ndb.Client.context.
I have a random crash while querying. It happens from time to time (once or twice a week) and most of the time things just work. Traceback says about missing context but the code already within NDB client's context. I'm not using threading like in #128 so seems it is a something different.
Code example
Stack trace