Skip to content

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

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information