Non strict build causes "Missing artifact"
Summary
There is a regression in master not present in 1.2. When build non strict mode we get "Missing artifact" errors.
Steps to reproduce
You need three elements:
a.bst-
b.bstbuild dependsa.bstwith a plugin withoutBST_STRICT_REBUILDso notcompose -
c.bstbuild dependsb.bstwith a plugin withoutBST_STRICT_REBUILDso notcompose
- Build
b.bst. - Modify
a.bstto change its key. - Build non-strict
c.bst
What is the current bug behavior?
An unhandled exception occured:
Traceback (most recent call last):
File "/home/valentin/.local/lib/python3.6/site-packages/BuildStream-1.3.0+313.g8216ff8d-py3.6.egg/buildstream/element.py", line 1511, in _assemble
self.stage(sandbox)
File "/home/valentin/.local/lib/python3.6/site-packages/BuildStream-1.3.0+313.g8216ff8d-py3.6.egg/buildstream/buildelement.py", line 165, in stage
self.stage_dependency_artifacts(sandbox, Scope.BUILD)
File "/home/valentin/.local/lib/python3.6/site-packages/BuildStream-1.3.0+313.g8216ff8d-py3.6.egg/buildstream/element.py", line 699, in stage_dependency_artifacts
update_mtimes=to_update)
File "/home/valentin/.local/lib/python3.6/site-packages/BuildStream-1.3.0+313.g8216ff8d-py3.6.egg/buildstream/element.py", line 609, in stage_artifact
self.__assert_cached()
File "/home/valentin/.local/lib/python3.6/site-packages/BuildStream-1.3.0+313.g8216ff8d-py3.6.egg/buildstream/element.py", line 2069, in __assert_cached
self, self._get_brief_display_key())
AssertionError: manual element at a.bst [line 1 column 0]: Missing artifact 4c27cb74
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/valentin/.local/lib/python3.6/site-packages/BuildStream-1.3.0+313.g8216ff8d-py3.6.egg/buildstream/_scheduler/jobs/job.py", line 398, in _child_action
result = self.child_process()
File "/home/valentin/.local/lib/python3.6/site-packages/BuildStream-1.3.0+313.g8216ff8d-py3.6.egg/buildstream/_scheduler/jobs/elementjob.py", line 94, in child_process
return self._action_cb(self._element)
File "/home/valentin/.local/lib/python3.6/site-packages/BuildStream-1.3.0+313.g8216ff8d-py3.6.egg/buildstream/_scheduler/queues/buildqueue.py", line 70, in process
element._assemble()
File "/home/valentin/.local/lib/python3.6/site-packages/BuildStream-1.3.0+313.g8216ff8d-py3.6.egg/buildstream/element.py", line 1591, in _assemble
build_result_dict = {"success": self.__build_result[0], "description": self.__build_result[1]}
TypeError: 'NoneType' object is not subscriptable
What is the expected correct behavior?
It should build without error
Relevant logs and/or screenshots
Possible fixes
Other relevant information
- BuildStream version affected: master /milestone %BuildStream_v1.4