Which I was able to track it down (I believe) to the method
promise.async_.Async.queue_tick, specifically this call self.schedule.call(self.drain_queues) (line 120 at the moment).
And if we don't set a promise scheduler, then it does works, when omitting the executor param, and also when passing AsyncioExecutor to it.
This is causing some really weird behavior (specially the getting stuck part) specially when using dataloaders, which is understandable because they rely heavily on promises.
Versions (this is inside a virtual environment generated using python3 -m venv .env, where python3 is coming from Ubuntu 17.10):
For this small (but complete) server code, every schema-related request gets stuck indefinitely (the GraphiQL UI loads fine in all cases):
If we only remove the
executor
parameter from theGraphQLView.attach
call, we get this error (as the JSON body)Which I was able to track it down (I believe) to the method
promise.async_.Async.queue_tick
, specifically this callself.schedule.call(self.drain_queues)
(line 120 at the moment).And if we don't set a promise scheduler, then it does works, when omitting the
executor
param, and also when passingAsyncioExecutor
to it.This is causing some really weird behavior (specially the getting stuck part) specially when using dataloaders, which is understandable because they rely heavily on promises.
Versions (this is inside a virtual environment generated using
python3 -m venv .env
, wherepython3
is coming from Ubuntu 17.10):