BuildStream crashes on junctions in non-strict mode
Summary
BuildStream crashes on junctions in non-strict mode
Steps to reproduce
Build or fetch any project which has a junction, in non-strict mode.
What is the current bug behavior?
Traceback (most recent call last):
File "/codethink/GNOME/buildstream/buildstream/testing/runcli.py", line 393, in _invoke
cli_object.main(args=args or (), prog_name=cli_object.name)
File "/codethink/GNOME/buildstream/buildstream/_frontend/cli.py", line 195, in override_main
standalone_mode=standalone_mode, **extra)
File "/codethink/GNOME/buildstream/.tox/py36/lib/python3.6/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/codethink/GNOME/buildstream/.tox/py36/lib/python3.6/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/codethink/GNOME/buildstream/.tox/py36/lib/python3.6/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/codethink/GNOME/buildstream/.tox/py36/lib/python3.6/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/codethink/GNOME/buildstream/.tox/py36/lib/python3.6/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/codethink/GNOME/buildstream/.tox/py36/lib/python3.6/site-packages/click/decorators.py", line 27, in new_func
return f(get_current_context().obj, *args, **kwargs)
File "/codethink/GNOME/buildstream/buildstream/_frontend/cli.py", line 672, in source_fetch
remote=remote)
File "/codethink/GNOME/buildstream/buildstream/_stream.py", line 324, in fetch
source_remote_url=remote)
File "/codethink/GNOME/buildstream/buildstream/_stream.py", line 1061, in _load
fetch_subprojects=fetch_subprojects)
File "/codethink/GNOME/buildstream/buildstream/_pipeline.py", line 113, in load
fetch_subprojects=fetch_subprojects)
File "/codethink/GNOME/buildstream/buildstream/_project.py", line 455, in load_elements
fetch_subprojects=fetch_subprojects)
File "/codethink/GNOME/buildstream/buildstream/_loader/loader.py", line 114, in load
element = loader._load_file(name, rewritable, ticker, fetch_subprojects)
File "/codethink/GNOME/buildstream/buildstream/_loader/loader.py", line 258, in _load_file
fetch_subprojects=fetch_subprojects, provenance=dep.provenance)
File "/codethink/GNOME/buildstream/buildstream/_loader/loader.py", line 569, in _get_loader
filename, element._get_cache_key())
File "/usr/local/lib/python3.6/posixpath.py", line 94, in join
genericpath._check_arg_types('join', a, *p)
File "/usr/local/lib/python3.6/genericpath.py", line 149, in _check_arg_types
(funcname, s.__class__.__name__)) from None
TypeError: join() argument must be str or bytes, not 'NoneType'
What is the expected correct behavior?
No crashes please, just happily load the junction cache key.
Additional information
This only happens with master, not in bst-1.2.