cphang99 opened a new issue, #1891:
URL: https://github.com/apache/buildstream/issues/1891
## How to reproduce
Using a nested junction reference (or referencing it from a `link` element)
results in the following python exception traceback occurring:
```shell
[--:--:--][ ][ main:core activity ] BUG 'dict'
object has no attribute 'clone'
Traceback (most recent call last):
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_loader/loader.py",
line 409, in _load_one_file
element = self._elements[filename]
KeyError: 'components/libyaml.bst'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/christopherphang/.pyenv/versions/bst2/bin/bst", line 8, in
<module>
sys.exit(cli())
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/click/core.py",
line 1157, in __call__
return self.main(*args, **kwargs)
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_frontend/cli.py",
line 271, in override_main
original_main(self, args=args, prog_name=prog_name,
complete_var=None, standalone_mode=standalone_mode, **extra)
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/click/core.py",
line 1078, in main
rv = self.invoke(ctx)
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/click/core.py",
line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/click/core.py",
line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/click/core.py",
line 783, in invoke
return __callback(*args, **kwargs)
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/click/decorators.py",
line 45, in new_func
return f(get_current_context().obj, *args, **kwargs)
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_frontend/cli.py",
line 521, in build
app.stream.build(
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_stream.py",
line 397, in build
elements = self._load(
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_stream.py",
line 1641, in _load
elements, except_elements, artifacts =
self._load_elements_from_targets(
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_stream.py",
line 1456, in _load_elements_from_targets
elements, except_elements = self._load_elements([element_names,
except_targets])
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_stream.py",
line 1406, in _load_elements
elements = self._project.load_elements(targets)
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_project.py",
line 431, in load_elements
load_elements = self.loader.load(targets)
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_loader/loader.py",
line 132, in load
element = loader._load_file(name, None)
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_loader/loader.py",
line 498, in _load_file
dep_element = loader._load_file(dep.name, dep.node)
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_loader/loader.py",
line 466, in _load_file
top_element = self._load_one_file(filename, provenance_node,
load_subprojects=load_subprojects)
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_loader/loader.py",
line 421, in _load_one_file
element = self._load_file_no_deps(filename, provenance_node)
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_loader/loader.py",
line 313, in _load_file_no_deps
self.project.ensure_fully_loaded()
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_project.py",
line 485, in ensure_fully_loaded
self.junction._get_project().ensure_fully_loaded()
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_project.py",
line 487, in ensure_fully_loaded
self._load_second_pass()
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_project.py",
line 832, in _load_second_pass
self._project_includes.process(project_conf_second_pass,
process_project_options=False)
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_includes.py",
line 46, in process
self._process(node, only_local=only_local,
process_project_options=process_project_options)
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_includes.py",
line 66, in _process
self._process_node(
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_includes.py",
line 105, in _process_node
include_node, file_path, sub_loader = self._include_file(include,
current_loader)
File
"/home/christopherphang/.pyenv/versions/3.10.4/envs/bst2/lib/python3.10/site-packages/buildstream/_includes.py",
line 175, in _include_file
variables_node = current_loader.project.base_variables.clone()
AttributeError: 'dict' object has no attribute 'clone'
```
This can be achieved by having an element that references a nested junction
element directly:
```yaml
- foo-junction.bst:freedesktop-sdk.bst:components/libyaml.bst
```
Even if the junction element is referenced via a link element, so:
`freedesktop-sdk.bst`
```yaml
kind: link
config:
target: foo-junction.bst:freedesktop-sdk.bst
```
and then:
```yaml
- freedesktop-sdk.bst:components/libyaml.bst
```
results in the same error.
--
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]