Skip to content
This repository was archived by the owner on May 6, 2026. It is now read-only.
This repository was archived by the owner on May 6, 2026. It is now read-only.

ContextError while in context #182

Description

@Mystic-Mirage

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.

Metadata

Metadata

Assignees

Labels

🚨This issue needs some love.priority: p1Important issue which blocks shipping the next release. Will be fixed prior to next release.type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.wontfixThis will not be worked on

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions