Skip to content

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.bst build depends a.bst with a plugin without BST_STRICT_REBUILD so not compose
  • c.bst build depends b.bst with a plugin without BST_STRICT_REBUILD so not compose
  1. Build b.bst.
  2. Modify a.bst to change its key.
  3. 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


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