bst [anything requiring an event loop] completely funted using python 3.8
Summary
Trying to use BuildStream with python 3.8 is completely broken for either master or 1.4, as far as I can tell. It seems to be some issue from async changes perhaps.
Steps to reproduce
- Install BuildStream (either 1.4 or master) on a system using python 3.8
- Clone your favourite BuildStream project
- Run
bst build [something].bst
What is the current bug behavior?
Elements, cached state and so on gets resolved, but when the main loop starts this happens:
[--:--:--][][] BUG no running event loop
Traceback (most recent call last):
File "/home/tom/Documents/integration/int-venv/bin/bst", line 8, in <module>
sys.exit(cli())
File "/home/tom/Documents/integration/int-venv/lib/python3.8/site-packages/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/home/tom/Documents/integration/int-venv/lib/python3.8/site-packages/buildstream/_frontend/cli.py", line 173, in override_main
original_main(self, args=args, prog_name=prog_name, complete_var=None,
File "/home/tom/Documents/integration/int-venv/lib/python3.8/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/home/tom/Documents/integration/int-venv/lib/python3.8/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/tom/Documents/integration/int-venv/lib/python3.8/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/tom/Documents/integration/int-venv/lib/python3.8/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/home/tom/Documents/integration/int-venv/lib/python3.8/site-packages/click/decorators.py", line 27, in new_func
return f(get_current_context().obj, *args, **kwargs)
File "/home/tom/Documents/integration/int-venv/lib/python3.8/site-packages/buildstream/_frontend/cli.py", line 340, in build
app.stream.build(elements,
File "/home/tom/Documents/integration/int-venv/lib/python3.8/site-packages/buildstream/_stream.py", line 211, in build
self._run()
File "/home/tom/Documents/integration/int-venv/lib/python3.8/site-packages/buildstream/_stream.py", line 1022, in _run
_, status = self._scheduler.run(self.queues)
File "/home/tom/Documents/integration/int-venv/lib/python3.8/site-packages/buildstream/_scheduler/scheduler.py", line 153, in run
self._sched()
File "/home/tom/Documents/integration/int-venv/lib/python3.8/site-packages/buildstream/_scheduler/scheduler.py", line 427, in _sched
self._sched_queue_jobs()
File "/home/tom/Documents/integration/int-venv/lib/python3.8/site-packages/buildstream/_scheduler/scheduler.py", line 401, in _sched_queue_jobs
self._spawn_job(job)
File "/home/tom/Documents/integration/int-venv/lib/python3.8/site-packages/buildstream/_scheduler/scheduler.py", line 281, in _spawn_job
job.spawn()
File "/home/tom/Documents/integration/int-venv/lib/python3.8/site-packages/buildstream/_scheduler/jobs/job.py", line 162, in spawn
self._watcher.add_child_handler(self._process.pid, self._parent_child_completed)
File "/usr/lib/python3.8/asyncio/unix_events.py", line 1286, in add_child_handler
loop = events.get_running_loop()
RuntimeError: no running event loop
What is the expected correct behavior?
The project should build.
Other relevant information
- BuildStream version affected: 1.4 and master, probably 1.2 as well