juergbi opened a new issue, #2116:
URL: https://github.com/apache/buildstream/issues/2116
With BuildStream 2.7.0 (#2099), a junction element with a provenance node
such as
```
kind: junction
sources:
- kind: local
path: .
provenance:
originator: bar
```
results in the following crash for a simple `bst show`:
```
08:41:23 [--:--:--][ ][ main:core activity ] START
Loading elements
08:41:23 [00:00:00][ ][ main:core activity ]
SUCCESS Loading elements
08:41:23 [--:--:--][ ][ main:core activity ] START
Resolving elements
08:41:23 [--:--:--][ ][ main:core activity ] BUG
'NoneType' object has no attribute 'keys'
Traceback (most recent call last):
File "buildstream/.venv/bin/bst", line 10, in <module>
sys.exit(cli())
~~~^^
File "buildstream/.venv/lib/python3.14/site-packages/click/core.py",
line 1485, in __call__
return self.main(*args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^
File "buildstream/src/buildstream/_frontend/cli.py", line 282, in
override_main
original_main(self, args=args, prog_name=prog_name,
complete_var=None, standalone_mode=standalone_mode, **extra)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "buildstream/.venv/lib/python3.14/site-packages/click/core.py",
line 1406, in main
rv = self.invoke(ctx)
File "buildstream/.venv/lib/python3.14/site-packages/click/core.py",
line 1873, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "buildstream/.venv/lib/python3.14/site-packages/click/core.py",
line 1269, in invoke
return ctx.invoke(self.callback, **ctx.params)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "buildstream/.venv/lib/python3.14/site-packages/click/core.py",
line 824, in invoke
return callback(*args, **kwargs)
File
"buildstream/.venv/lib/python3.14/site-packages/click/decorators.py", line 46,
in new_func
return f(get_current_context().obj, *args, **kwargs)
File "buildstream/src/buildstream/_frontend/cli.py", line 661, in show
dependencies = app.stream.load_selection(
elements, selection=deps, except_targets=except_,
need_state=need_state
)
File "buildstream/src/buildstream/_stream.py", line 168, in
load_selection
target_objects = self._load(
targets,
...<9 lines>...
need_state=need_state,
)
File "buildstream/src/buildstream/_stream.py", line 1684, in _load
elements, except_elements, artifacts =
self._load_elements_from_targets(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
targets, except_targets, rewritable=False,
valid_artifact_names=load_artifacts
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "buildstream/src/buildstream/_stream.py", line 1497, in
_load_elements_from_targets
elements, except_elements = self._load_elements([element_names,
except_targets])
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "buildstream/src/buildstream/_stream.py", line 1447, in
_load_elements
elements = self._project.load_elements(targets)
File "buildstream/src/buildstream/_project.py", line 520, in
load_elements
elements = [Element._new_from_load_element(load_element, task) for
load_element in load_elements]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "buildstream/src/buildstream/element.py", line 1075, in
_new_from_load_element
element.__load_sources(load_element)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "buildstream/src/buildstream/element.py", line 2642, in
__load_sources
provenance_node.validate_keys(project.source_provenance_attributes.keys())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'keys'
```
As far as I can tell, the issue is that
`project.source_provenance_attributes` is set only as part of the second
project loading pass while junction elements may already be loaded before the
second project loading pass.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]