Snapcraft cant untar

Hello

tar archive extract is failing.

parts:
#dkentry-py3-dotnet, place to hold support items
dkentry-py3-dotnet:
source: ‘…/…/dkentry-py3-dotnet.tar’
source-type: tar

snapcraft, version 2.43.1+18.4

ubuntu@SER-VM-Ubuntu:~/UbuntuCore/SnapsDev/frozenmountain-doorking-snap$ snapcraft --debug --no-parallel-builds --target-arch=armhf pull dkentry-py3-dotnet
Setting target machine to ‘armhf’
Pulling dkentry-py3-dotnet
Sorry, an error occurred in Snapcraft:
Traceback (most recent call last):
File “/usr/bin/snapcraft”, line 11, in
load_entry_point(‘snapcraft==2.43.1+18.4’, ‘console_scripts’, ‘snapcraft’)()
File “/usr/lib/python3/dist-packages/click/core.py”, line 722, in call
return self.main(*args, **kwargs)
File “/usr/lib/python3/dist-packages/click/core.py”, line 697, in main
rv = self.invoke(ctx)
File “/usr/lib/python3/dist-packages/click/core.py”, line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/usr/lib/python3/dist-packages/click/core.py”, line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/usr/lib/python3/dist-packages/click/core.py”, line 535, in invoke
return callback(*args, **kwargs)
File “/usr/lib/python3/dist-packages/click/decorators.py”, line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File “/usr/lib/python3/dist-packages/snapcraft/cli/lifecycle.py”, line 70, in pull
_execute(steps.PULL, parts, **kwargs)
File “/usr/lib/python3/dist-packages/snapcraft/cli/lifecycle.py”, line 35, in _execute
lifecycle.execute(step, project_config, parts)
File “/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle/_runner.py”, line 90, in execute
executor.run(step, part_names)
File “/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle/_runner.py”, line 194, in run
self._handle_step(part_names, part, step, current_step, cli_config)
File “/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle/_runner.py”, line 208, in _handle_step
getattr(self, “run{}”.format(current_step.name))(part)
File “/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle/_runner.py”, line 250, in _run_pull
self._run_step(step=steps.PULL, part=part, progress=“Pulling”)
File “/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle/_runner.py”, line 327, in _run_step
getattr(part, step.name)()
File “/usr/lib/python3/dist-packages/snapcraft/internal/pluginhandler/init.py”, line 415, in pull
self._runner.pull()
File “/usr/lib/python3/dist-packages/snapcraft/internal/pluginhandler/_runner.py”, line 83, in pull
“override-pull”, self._override_pull_scriptlet, self._sourcedir
File “/usr/lib/python3/dist-packages/snapcraft/internal/pluginhandler/_runner.py”, line 162, in _run_scriptlet
scriptlet_name, function_call.strip()
File “/usr/lib/python3/dist-packages/snapcraft/internal/pluginhandler/_runner.py”, line 218, in _handle_builtin_function
function(**function_args)
File “/usr/lib/python3/dist-packages/snapcraft/internal/pluginhandler/init.py”, line 434, in _do_pull
self.source_handler.pull()
File “/usr/lib/python3/dist-packages/snapcraft/internal/sources/_base.py”, line 106, in pull
self.provision(self.source_dir, src=source_file, clean_target=False)
File “/usr/lib/python3/dist-packages/snapcraft/internal/sources/_tar.py”, line 70, in provision
self._extract(tarball, dst)
File “/usr/lib/python3/dist-packages/snapcraft/internal/sources/_tar.py”, line 108, in _extract
tar.extractall(members=filter_members(tar), path=dst)
File “/usr/lib/python3.6/tarfile.py”, line 2012, in extractall
numeric_owner=numeric_owner)
File “/usr/lib/python3.6/tarfile.py”, line 2054, in extract
numeric_owner=numeric_owner)
File “/usr/lib/python3.6/tarfile.py”, line 2124, in _extract_member
self.makefile(tarinfo, targetpath)
File “/usr/lib/python3.6/tarfile.py”, line 2173, in makefile
copyfileobj(source, target, tarinfo.size, ReadError, bufsize)
File “/usr/lib/python3.6/tarfile.py”, line 257, in copyfileobj
raise exception(“unexpected end of data”)
tarfile.ReadError: unexpected end of data
We would appreciate it if you created a bug report at
https://launchpad.net/snapcraft/+filebug with the above text included.

I was able to import the tar python module.

python3
Python 3.6.9 (default, Jul 17 2020, 12:50:27)
[GCC 8.4.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.

import tarfile
quit()

Hello!

Unfortunately, source cannot point to files/directories outside of the Snapcraft project. The project is shared with the build container (that Snapcraft creates) and does not have access outside of it.

We could use better error handling there though.