Skip to content

DVC add fails when there are broken symlinks in the dataset #3717

@greaber

Description

@greaber
DVC version: 0.93.0
Python version: 3.7.4
Platform: Linux-4.15.0-1065-aws-x86_64-with-debian-buster-sid
Binary: False
Package: pip
Supported remotes: http, https, s3
Cache: reflink - supported, hardlink - supported, symlink - supported
Repo: dvc, git

When t:rying to add TED-LIUM Release 3 (https://www.openslr.org/51/) to a data registry, dvc add failed. The problem was that this dataset has a few broken symlinks. Removing these symlinks fixed the problem. Here is the stack trace from dvc add -v

Traceback (most recent call last):
  File "/home/grant/miniconda3/lib/python3.7/site-packages/dvc/main.py", line 49, in main
    ret = cmd.run()
  File "/home/grant/miniconda3/lib/python3.7/site-packages/dvc/command/add.py", line 20, in run
    fname=self.args.file,
  File "/home/grant/miniconda3/lib/python3.7/site-packages/dvc/repo/__init__.py", line 28, in wrapper
    ret = f(repo, *args, **kwargs)
  File "/home/grant/miniconda3/lib/python3.7/site-packages/dvc/repo/scm_context.py", line 4, in run
    result = method(repo, *args, **kw)
  File "/home/grant/miniconda3/lib/python3.7/site-packages/dvc/repo/add.py", line 86, in add
    stage.commit()
  File "/home/grant/miniconda3/lib/python3.7/site-packages/funcy/decorators.py", line 39, in wrapper
    return deco(call, *dargs, **dkwargs)
  File "/home/grant/miniconda3/lib/python3.7/site-packages/dvc/stage.py", line 155, in rwlocked
    return call()
  File "/home/grant/miniconda3/lib/python3.7/site-packages/funcy/decorators.py", line 60, in __call__
    return self._func(*self._args, **self._kwargs)
  File "/home/grant/miniconda3/lib/python3.7/site-packages/dvc/stage.py", line 828, in commit
    out.commit()
  File "/home/grant/miniconda3/lib/python3.7/site-packages/dvc/output/base.py", line 244, in commit
    self.cache.save(self.path_info, self.info)
  File "/home/grant/miniconda3/lib/python3.7/site-packages/dvc/remote/base.py", line 527, in save
    self._save(path_info, checksum, save_link)
  File "/home/grant/miniconda3/lib/python3.7/site-packages/dvc/remote/base.py", line 533, in _save
    self._save_dir(path_info, checksum, save_link)
  File "/home/grant/miniconda3/lib/python3.7/site-packages/dvc/remote/base.py", line 484, in _save_dir
    self._save_file(entry_info, entry_checksum, save_link=False)
  File "/home/grant/miniconda3/lib/python3.7/site-packages/dvc/remote/base.py", line 431, in _save_file
    assert checksum
AssertionError

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugDid we break something?p2-mediumMedium priority, should be done, but less important

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions