Dvc exp push fails with ERROR: unexpected error - 'InteractiveSSHClient' object has no attribute '_passphrases'

Hey,

when I try to push an experiment to git and remote storage I get the following error.

dvc exp push origin
Pushing git refs|                                                                                                                                                                                                                                                                                                                                                                                                                    |0.00/? [00:00,      ?obj/s]/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/asyncssh/crypto/cipher.py:29: CryptographyDeprecationWarning: ARC4 has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.ARC4 and will be removed from this module in 48.0.0.
  from cryptography.hazmat.primitives.ciphers.algorithms import AES, ARC4
/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/asyncssh/crypto/cipher.py:30: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from this module in 48.0.0.
  from cryptography.hazmat.primitives.ciphers.algorithms import TripleDES
ERROR: unexpected error - 'InteractiveSSHClient' object has no attribute '_passphrases'                                                                                                                                                                                                                                                                                                                                                                          

Having any troubles? Hit us up at https://dvc.org/support, we are always happy to help!

The output of dvc doctor is:

dvc doctor
DVC version: 3.52.0 (pip)
-------------------------
Platform: Python 3.10.14 on Linux-5.15.0-116-generic-x86_64-with-glibc2.31
Subprojects:
        dvc_data = 3.15.1
        dvc_objects = 5.1.0
        dvc_render = 1.0.2
        dvc_task = 0.4.0
        scmrepo = 3.3.6
Supports:
        http (aiohttp = 3.9.5, aiohttp-retry = 2.8.3),
        https (aiohttp = 3.9.5, aiohttp-retry = 2.8.3),
        ssh (sshfs = 2024.6.0)
Config:
        Global: /home/fuchsfa/.config/dvc
        System: /etc/xdg/dvc
Cache types: hardlink, symlink
Cache directory: beegfs-7 on beegfs_nodev
Caches: local
Remotes: local
Workspace directory: beegfs-7 on beegfs_nodev
Repo: dvc, git
Repo.site_cache_dir: /var/tmp/dvc/repo/3e48a1569317e5dfb4707437e11348b0

The commands dvc push and git push both work so I am not sure what the problem is…

Thanks in advance for your help.

here is the verbose output of dvc exp push

dvc exp push origin -vv
2024-08-05 10:10:19,138 DEBUG: v3.52.0 (pip), CPython 3.10.14 on Linux-5.15.0-116-generic-x86_64-with-glibc2.31
2024-08-05 10:10:19,138 DEBUG: command: /home/fuchsfa/foundation-models/.venv/bin/dvc exp push origin -vv
2024-08-05 10:10:19,138 TRACE: Namespace(quiet=0, verbose=2, cprofile=False, cprofile_dump=None, yappi=False, yappi_separate_threads=False, viztracer=False, viztracer_depth=None, viztracer_async=False, pdb=False, instrument=False, instrument_open=False, show_stack=False, cd='.', cmd='push', all_commits=False, rev=None, num=1, force=False, push_cache=True, dvc_remote=None, jobs=None, run_cache=True, git_remote='origin', experiment=[], func=<class 'dvc.commands.experiments.push.CmdExperimentsPush'>, parser=DvcParser(prog='dvc', usage=None, description='Data Version Control', formatter_class=<class 'dvc.cli.formatter.RawTextHelpFormatter'>, conflict_handler='error', add_help=False))
2024-08-05 10:10:20,933 DEBUG: git push experiment ['refs/exps/6b/c0fc63809e34fdd99e6ea0c93cd7f6afc25cd1/aspen-loge:refs/exps/6b/c0fc63809e34fdd99e6ea0c93cd7f6afc25cd1/aspen-loge'] -> 'origin'
Pushing git refs|                                                                                                                                                                                                                                                                                                                                                                                                                    |0.00/? [00:00,      ?obj/s]/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/asyncssh/crypto/cipher.py:29: CryptographyDeprecationWarning: ARC4 has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.ARC4 and will be removed from this module in 48.0.0.
  from cryptography.hazmat.primitives.ciphers.algorithms import AES, ARC4
/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/asyncssh/crypto/cipher.py:30: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from this module in 48.0.0.
  from cryptography.hazmat.primitives.ciphers.algorithms import TripleDES
2024-08-05 10:10:22,360 ERROR: unexpected error - 'InteractiveSSHClient' object has no attribute '_passphrases'                                                                                                                                                                                                                                                                                                                                                  
Traceback (most recent call last):
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/cli/__init__.py", line 211, in main
    ret = cmd.do_run()
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/cli/command.py", line 27, in do_run
    return self.run()
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/commands/experiments/push.py", line 55, in run
    result = self.repo.experiments.push(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/experiments/__init__.py", line 364, in push
    return push(self.repo, *args, **kwargs)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/__init__.py", line 58, in wrapper
    return f(repo, *args, **kwargs)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/scm_context.py", line 143, in run
    return method(repo, *args, **kw)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/experiments/push.py", line 111, in push
    push_result = _push(repo, git_remote, exp_ref_set, force)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/experiments/push.py", line 153, in _push
    results: Mapping[str, SyncStatus] = repo.scm.push_refspecs(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/scmrepo/git/__init__.py", line 307, in _backend_func
    result = func(*args, **kwargs)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/scmrepo/git/backend/dulwich/__init__.py", line 663, in push_refspecs
    result = client.send_pack(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dulwich/client.py", line 1051, in send_pack
    proto, unused_can_read, stderr = self._connect(b"receive-pack", path)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dulwich/client.py", line 1799, in _connect
    con = self.ssh_vendor.run_command(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/fsspec/asyn.py", line 118, in wrapper
    return sync(self.loop, func, *args, **kwargs)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/fsspec/asyn.py", line 103, in sync
    raise return_result
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/fsspec/asyn.py", line 56, in _runner
    result[0] = await coro
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/scmrepo/git/backend/dulwich/asyncssh_vendor.py", line 297, in _run_command
    conn = await asyncssh.connect(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/asyncssh/connection.py", line 8643, in connect
    return await asyncio.wait_for(
  File "/home/fuchsfa/.rye/py/cpython@3.10.14/lib/python3.10/asyncio/tasks.py", line 408, in wait_for
    return await fut
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/asyncssh/connection.py", line 449, in _connect
    await options.waiter
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/asyncssh/connection.py", line 1088, in _reap_task
    task.result()
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/asyncssh/auth.py", line 322, in _start
    self._keypair = await self._conn.public_key_auth_requested()
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/asyncssh/connection.py", line 3594, in public_key_auth_requested
    result = await cast(Awaitable[KeyPairListArg], result)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/scmrepo/git/backend/dulwich/asyncssh_vendor.py", line 194, in public_key_auth_requested
    key = await self._read_private_key_interactive(key_to_load)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/scmrepo/git/backend/dulwich/asyncssh_vendor.py", line 214, in _read_private_key_interactive
    passphrase = self._passphrases.get(path)
AttributeError: 'InteractiveSSHClient' object has no attribute '_passphrases'

2024-08-05 10:10:22,731 DEBUG: link type reflink is not available ([Errno 95] no more link types left to try out)
2024-08-05 10:10:22,731 DEBUG: Removing '/home/fuchsfa/.ynxsw34zJcQVWTw-PMF3gw.tmp'
2024-08-05 10:10:22,733 DEBUG: Removing '/home/fuchsfa/.ynxsw34zJcQVWTw-PMF3gw.tmp'
2024-08-05 10:10:22,735 DEBUG: Removing '/home/fuchsfa/.ynxsw34zJcQVWTw-PMF3gw.tmp'
2024-08-05 10:10:22,737 DEBUG: Removing '/home/fuchsfa/foundation-models/.dvc/cache/files/md5/.YNGm9l2Z3irVkW-dAA_PKQ.tmp'
2024-08-05 10:10:22,746 DEBUG: Version info for developers:
DVC version: 3.52.0 (pip)
-------------------------
Platform: Python 3.10.14 on Linux-5.15.0-116-generic-x86_64-with-glibc2.31
Subprojects:
        dvc_data = 3.15.1
        dvc_objects = 5.1.0
        dvc_render = 1.0.2
        dvc_task = 0.4.0
        scmrepo = 3.3.6
Supports:
        http (aiohttp = 3.9.5, aiohttp-retry = 2.8.3),
        https (aiohttp = 3.9.5, aiohttp-retry = 2.8.3),
        ssh (sshfs = 2024.6.0)
Config:
        Global: /home/fuchsfa/.config/dvc
        System: /etc/xdg/dvc
Cache types: hardlink, symlink
Cache directory: beegfs-7 on beegfs_nodev
Caches: local
Remotes: local
Workspace directory: beegfs-7 on beegfs_nodev
Repo: dvc, git
Repo.site_cache_dir: /var/tmp/dvc/repo/3e48a1569317e5dfb4707437e11348b0

Having any troubles? Hit us up at https://dvc.org/support, we are always happy to help!
2024-08-05 10:10:22,754 DEBUG: Analytics is enabled.
2024-08-05 10:10:22,757 TRACE: Saving analytics report to /tmp/tmpvqgc3l4c
2024-08-05 10:10:23,113 DEBUG: Trying to spawn ['daemon', 'analytics', '/tmp/tmpvqgc3l4c', '-vv']
2024-08-05 10:10:23,132 DEBUG: Spawned ['daemon', 'analytics', '/tmp/tmpvqgc3l4c', '-vv'] with pid 3865
2024-08-05 10:10:23,141 TRACE: Process 3797 exiting with 255

Thanks for the report @f-fuchs! It looks like this was a bug that should be fixed in scmrepo==3.3.7.

hey,

thanks for the fast response. after upgrading the error is gone :+1:

sadly now I get following error:
ERROR: failed to push cache: [Errno 30] Read-only file system:

What I dont understand is that dvc push is working. My understanding is that they push to the same remote storage, so I dont understand why one is working and the other is not.

Hi, can you share the verbose output?

dvc exp push origin -vv
2024-08-06 08:56:20,601 DEBUG: v3.52.0 (pip), CPython 3.10.14 on Linux-5.15.0-113-generic-x86_64-with-glibc2.31
2024-08-06 08:56:20,601 DEBUG: command: /home/fuchsfa/foundation-models/.venv/bin/dvc exp push origin -vv
2024-08-06 08:56:20,601 TRACE: Namespace(quiet=0, verbose=2, cprofile=False, cprofile_dump=None, yappi=False, yappi_separate_threads=False, viztracer=False, viztracer_depth=None, viztracer_async=False, pdb=False, instrument=False, instrument_open=False, show_stack=False, cd='.', cmd='push', all_commits=False, rev=None, num=1, force=False, push_cache=True, dvc_remote=None, jobs=None, run_cache=True, git_remote='origin', experiment=[], func=<class 'dvc.commands.experiments.push.CmdExperimentsPush'>, parser=DvcParser(prog='dvc', usage=None, description='Data Version Control', formatter_class=<class 'dvc.cli.formatter.RawTextHelpFormatter'>, conflict_handler='error', add_help=False))
2024-08-06 08:56:22,351 DEBUG: git push experiment ['refs/exps/6b/c0fc63809e34fdd99e6ea0c93cd7f6afc25cd1/aspen-loge:refs/exps/6b/c0fc63809e34fdd99e6ea0c93cd7f6afc25cd1/aspen-loge'] -> 'origin'
Pushing git refs|                                                                                                                                                                                       |0.00/? [00:00,      ?obj/s]/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/asyncssh/crypto/cipher.py:29: CryptographyDeprecationWarning: ARC4 has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.ARC4 and will be removed from this module in 48.0.0.
  from cryptography.hazmat.primitives.ciphers.algorithms import AES, ARC4
/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/asyncssh/crypto/cipher.py:30: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from this module in 48.0.0.
  from cryptography.hazmat.primitives.ciphers.algorithms import TripleDES
Enter passphrase for key '/home/fuchsfa/.ssh/id_ed25519': 
2024-08-06 08:56:28,124 DEBUG: dvc push experiment '[ExpRefInfo(baseline_sha='6bc0fc63809e34fdd99e6ea0c93cd7f6afc25cd1', name='aspen-loge')]'                                                                                       
2024-08-06 08:56:28,281 TRACE: switching fs to workspace                                                                                                                                                                            
2024-08-06 08:56:28,285 TRACE: switching fs to revision 0f93e29
2024-08-06 08:56:28,499 TRACE: Context during resolution of stage train:
{'encoder_decoder': {'mode': 'LINEAR_PROBING', 'checkpoint': None}, 'backbone': {'config_name': 'CONVNEXTV2_ATTO'}, 'decoder': {'out_channels': 1}, 'optimization': {'cudnn_benchmark': False}, 'training': {'lr': 0.001, 'epochs': 5, 'batch_size': 128, 'device': 'cuda', 'train_loader': {'num_workers': 2, 'shuffle': True, 'persistent_workers': True, 'pin_memory': True}, 'val_loader': {'num_workers': 2, 'shuffle': False, 'persistent_workers': True, 'pin_memory': True}, 'optimizer': {'name': 'AdamW', 'weight_decay': 0.05}, 'loss': {'name': 'MSELoss'}, 'lr_scheduler': {'name': 'OneCycleLR'}, 'metrics': {'PeakSignalNoiseRatio': {'data_range': 1}}}}
2024-08-06 08:56:28,505 TRACE:   150.13 ms in collecting stages from /
2024-08-06 08:56:28,506 TRACE:    13.14 mks in collecting stages from /.vscode
2024-08-06 08:56:28,507 TRACE:    17.99 mks in collecting stages from /dvclive
2024-08-06 08:56:28,508 TRACE:     9.38 mks in collecting stages from /dvclive/plots
2024-08-06 08:56:28,509 TRACE:    10.67 mks in collecting stages from /dvclive/plots/metrics
2024-08-06 08:56:28,510 TRACE:    11.99 mks in collecting stages from /dvclive/plots/metrics/train
2024-08-06 08:56:28,511 TRACE:    21.91 mks in collecting stages from /dvclive/plots/metrics/val
2024-08-06 08:56:28,512 TRACE:    16.02 mks in collecting stages from /src
2024-08-06 08:56:28,515 TRACE:    33.69 mks in collecting stages from /src/foundation_models
2024-08-06 08:56:28,515 TRACE:    11.87 mks in collecting stages from /src/foundation_models/backbones
2024-08-06 08:56:28,516 TRACE:     9.22 mks in collecting stages from /src/foundation_models/data
2024-08-06 08:56:28,516 TRACE:     8.67 mks in collecting stages from /src/foundation_models/decoders
2024-08-06 08:56:28,517 TRACE:    12.29 mks in collecting stages from /tests
Collecting                                                                                                                                                                                                |1.00 [00:00,  147entry/s]
2024-08-06 08:56:28,555 DEBUG: Preparing to transfer data from '/home/fuchsfa/foundation-models/.dvc/cache/files/md5' to '/dvc_cache/files/md5'
2024-08-06 08:56:28,555 DEBUG: Preparing to collect status from '/dvc_cache/files/md5'
2024-08-06 08:56:28,556 DEBUG: Collecting status from '/dvc_cache/files/md5'
2024-08-06 08:56:28,561 DEBUG: Preparing to collect status from '/home/fuchsfa/foundation-models/.dvc/cache/files/md5'
2024-08-06 08:56:28,561 DEBUG: Collecting status from '/home/fuchsfa/foundation-models/.dvc/cache/files/md5'                                                                                                                        
Pushing
2024-08-06 08:56:28,852 DEBUG: notifying Studio (https://studio.dvc.ai) about updated experiments                                                                                                                                   
2024-08-06 08:56:28,854 TRACE: Sending {'repo_url': 'git@github.com:f-fuchs/foundation-models.git', 'client': 'dvc', 'refs': {'pushed': ['refs/exps/6b/c0fc63809e34fdd99e6ea0c93cd7f6afc25cd1/aspen-loge']}} to https://studio.dvc.ai/webhook/dvc
2024-08-06 08:56:29,537 TRACE: 404 Client Error: Not Found for url: https://studio.dvc.ai/webhook/dvc
Traceback (most recent call last):
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/utils/studio.py", line 72, in notify_refs
    r = post("webhook/dvc", token, data, base_url=base_url)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/utils/studio.py", line 47, in post
    r.raise_for_status()
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/requests/models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://studio.dvc.ai/webhook/dvc

2024-08-06 08:56:29,543 WARNING: failed to notify Studio: permission denied or repo not found in studio (status=404)
2024-08-06 08:56:29,543 TRACE: received response: {'detail': 'Permission denied or repo not found in Studio'} (status=404)
Experiment aspen-loge is up to date on Git remote 'origin'.
2024-08-06 08:56:29,759 ERROR: failed to push cache: [Errno 30] Read-only file system: '/dvc_cache'
Traceback (most recent call last):
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/experiments/push.py", line 126, in push
    result["uploaded"] = _push_cache(repo, pushed_refs_info, **kwargs)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/experiments/push.py", line 182, in _push_cache
    return repo.push(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/__init__.py", line 58, in wrapper
    return f(repo, *args, **kwargs)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/push.py", line 147, in push
    push_transferred, push_failed = ipush(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_data/index/push.py", line 76, in push
    result = transfer(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_data/hashfile/transfer.py", line 224, in transfer
    failed = _do_transfer(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_data/hashfile/transfer.py", line 121, in _do_transfer
    failed_ids.update(_add(src, dest, file_ids, **kwargs))
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_data/hashfile/transfer.py", line 165, in _add
    dest.add(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_data/hashfile/db/__init__.py", line 99, in add
    transferred = super().add(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_objects/db.py", line 171, in add
    self._init(parts)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_objects/db.py", line 82, in _init
    self.makedirs(self.fs.join(self.path, dname))
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_data/hashfile/db/local.py", line 43, in makedirs
    makedirs(path, exist_ok=True, mode=self._dir_mode)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_objects/fs/utils.py", line 126, in makedirs
    makedirs(head, exist_ok=exist_ok, mode=mode)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_objects/fs/utils.py", line 126, in makedirs
    makedirs(head, exist_ok=exist_ok, mode=mode)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_objects/fs/utils.py", line 126, in makedirs
    makedirs(head, exist_ok=exist_ok, mode=mode)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_objects/fs/utils.py", line 136, in makedirs
    os.mkdir(path, mode)
OSError: [Errno 30] Read-only file system: '/dvc_cache'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/cli/__init__.py", line 211, in main
    ret = cmd.do_run()
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/cli/command.py", line 27, in do_run
    return self.run()
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/commands/experiments/push.py", line 55, in run
    result = self.repo.experiments.push(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/experiments/__init__.py", line 364, in push
    return push(self.repo, *args, **kwargs)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/__init__.py", line 58, in wrapper
    return f(repo, *args, **kwargs)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/scm_context.py", line 143, in run
    return method(repo, *args, **kw)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/experiments/push.py", line 134, in push
    raise UploadError("failed to push cache", result) from e
dvc.repo.experiments.push.UploadError: failed to push cache

2024-08-06 08:56:29,799 DEBUG: Analytics is enabled.
2024-08-06 08:56:29,804 TRACE: Saving analytics report to /tmp/tmpphwi7r0y
2024-08-06 08:56:30,377 DEBUG: Trying to spawn ['daemon', 'analytics', '/tmp/tmpphwi7r0y', '-vv']
2024-08-06 08:56:30,399 DEBUG: Spawned ['daemon', 'analytics', '/tmp/tmpphwi7r0y', '-vv'] with pid 1801
2024-08-06 08:56:30,409 TRACE: Process 1698 exiting with 255

Is your remote on /dvc_cache? That seems to be read-only.

How did you setup your remote?

hey,

I think I used the dvc command, but I am not sure anymore. getting everything to run was/is a bit of an odyssey.

but this my dvc config:

[core]
    autostage = true
    remote = local_remote
['remote "local_remote"']
    url = ../dvc_cache

I thought at first it were files permissions but I set dvc_cache, dvc_cache/files and dvc_cache/runs to 777.
What is strange to me is that there are some runs already there and dvc push works…

Is the remote at the root? Can you try os.makedirs("../dvc_cache/files/md5/00")? Does it still fail with the same issue.

My guess is that the ../dvc_cache is a mount, and is mounted as a read-only. Is that the case?

python
Python 3.10.14 (main, Apr 15 2024, 18:28:39) [Clang 17.0.6 ] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.makedirs("../dvc_cache/files/md5/00")
>>> os.makedirs("./dvc_cache/files/md5/00")
>>>

The initial idea was to mount it as an sshfs folder but that was/is not possible to due constraints on the server I am working on. Therefore this is a normal folder as far as I know :sweat_smile:

And what about os.mkdir("/dvc_cache")? Just to confirm, I don’t think you have answered if the remote is at the root or not? Is it in /dvc_cache? And does it exist?

You can try adding a breakpoint and see what’s the issue. (adding --pdb on the command might work too).

From what I see, it is coming from your machine itself.

python
Python 3.10.14 (main, Apr 15 2024, 18:28:39) [Clang 17.0.6 ] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> os.mkdir("/dvc_cache")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'os' is not defined
>>> import os
>>> os.mkdir("/dvc_cache")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 30] Read-only file system: '/dvc_cache'
>>>

Yeah that fails…

ls
data       dvc.lock       params.yaml     requirements-dev.lock  tests
dvc_cache  dvc.yaml       pyproject.toml  requirements.lock      train.py
dvclive    example.ipynb  README.md       src

So this is the structure of my git repository and the folder I want to use as a local remote is the dvc_cache folder. The config also correctly points to this folder as far as I understand.
Why would it try to push to /dvc_cache instead?

What exactly do you mean with does the remote exist? The directory contains the folders files and runs and they also have some subfolders (I think these were created when I ran dvc push)

ls dvc_cache/
files  runs

the path of my git repository is:
/home/fuchsfa/foundation-models

this is the output of dvc remote list:
local_remote /home/fuchsfa/foundation-models/dvc_cache
and that is also the path I intend/want to use

Okay, thanks. We’ll need to investigate why it’s using /dvc_cache. It was not clear to me whether you intended remote to be in /dvc_cache or not.

hey, I want the remote to be in /home/fuchsfa/foundation-models/dvc_cache not /dvc_cache.

I am not sure why dvc thinks I want /dvc_cache because both my config and dvc remote list point to /home/fuchsfa/foundation-models/dvc_cache.

below is the output of dvc push -vv which is working.

dvc push -vv
2024-08-06 14:14:06,434 DEBUG: v3.52.0 (pip), CPython 3.10.14 on Linux-5.15.0-113-generic-x86_64-with-glibc2.31
2024-08-06 14:14:06,434 DEBUG: command: /home/fuchsfa/foundation-models/.venv/bin/dvc push -vv
2024-08-06 14:14:06,434 TRACE: Namespace(quiet=0, verbose=2, cprofile=False, cprofile_dump=None, yappi=False, yappi_separate_threads=False, viztracer=False, viztracer_depth=None, viztracer_async=False, pdb=False, instrument=False, instrument_open=False, show_stack=False, cd='.', cmd='push', jobs=None, targets=[], remote=None, all_branches=False, all_tags=False, all_commits=False, with_deps=False, recursive=False, run_cache=True, glob=False, func=<class 'dvc.commands.data_sync.CmdDataPush'>, parser=DvcParser(prog='dvc', usage=None, description='Data Version Control', formatter_class=<class 'dvc.cli.formatter.RawTextHelpFormatter'>, conflict_handler='error', add_help=False))
2024-08-06 14:14:08,100 TRACE: Context during resolution of stage train:                                                    
{'encoder_decoder': {'mode': 'LINEAR_PROBING', 'checkpoint': None}, 'backbone': {'config_name': 'CONVNEXTV2_ATTO'}, 'decoder': {'out_channels': 1}, 'optimization': {'compile': {'mode': 'default', 'dynamic': False}, 'cudnn_benchmark': False}, 'training': {'lr': 0.001, 'epochs': 5, 'batch_size': 128, 'device': 'cuda', 'train_loader': {'num_workers': 2, 'shuffle': True, 'persistent_workers': True, 'pin_memory': True}, 'val_loader': {'num_workers': 2, 'shuffle': False, 'persistent_workers': True, 'pin_memory': True}, 'optimizer': {'name': 'AdamW', 'weight_decay': 0.05}, 'loss': {'name': 'MSELoss'}, 'lr_scheduler': {'name': 'OneCycleLR'}, 'metrics': {'PeakSignalNoiseRatio': {'data_range': 1}}}}
2024-08-06 14:14:08,113 TRACE:   138.57 ms in collecting stages from /home/fuchsfa/foundation-models
2024-08-06 14:14:08,114 TRACE:   313.00 mks in collecting stages from /home/fuchsfa/foundation-models/src
2024-08-06 14:14:08,117 TRACE:     1.38 ms in collecting stages from /home/fuchsfa/foundation-models/src/foundation_models
2024-08-06 14:14:08,119 TRACE:   455.19 mks in collecting stages from /home/fuchsfa/foundation-models/src/foundation_models/decoders
2024-08-06 14:14:08,121 TRACE:   435.38 mks in collecting stages from /home/fuchsfa/foundation-models/src/foundation_models/backbones
2024-08-06 14:14:08,122 TRACE:   499.90 mks in collecting stages from /home/fuchsfa/foundation-models/src/foundation_models/data
2024-08-06 14:14:08,125 TRACE:   531.63 mks in collecting stages from /home/fuchsfa/foundation-models/.ruff_cache
2024-08-06 14:14:08,126 TRACE:    22.19 mks in collecting stages from /home/fuchsfa/foundation-models/tests
2024-08-06 14:14:08,128 TRACE:   911.11 mks in collecting stages from /home/fuchsfa/foundation-models/dvclive
2024-08-06 14:14:08,130 TRACE:   823.47 mks in collecting stages from /home/fuchsfa/foundation-models/dvclive/static
2024-08-06 14:14:08,131 TRACE:    11.32 mks in collecting stages from /home/fuchsfa/foundation-models/dvclive/static/train
2024-08-06 14:14:08,132 TRACE:    14.06 mks in collecting stages from /home/fuchsfa/foundation-models/dvclive/static/val
2024-08-06 14:14:08,133 TRACE:     5.95 mks in collecting stages from /home/fuchsfa/foundation-models/dvclive/plots
2024-08-06 14:14:08,134 TRACE:    11.14 mks in collecting stages from /home/fuchsfa/foundation-models/.vscode
Collecting                                                                                        |1.00 [00:00,  129entry/s]
2024-08-06 14:14:08,167 DEBUG: Preparing to transfer data from '/home/fuchsfa/foundation-models/.dvc/cache/files/md5' to '/home/fuchsfa/foundation-models/dvc_cache/files/md5'
2024-08-06 14:14:08,167 DEBUG: Preparing to collect status from '/home/fuchsfa/foundation-models/dvc_cache/files/md5'
2024-08-06 14:14:08,168 DEBUG: Collecting status from '/home/fuchsfa/foundation-models/dvc_cache/files/md5'
Pushing
11 files pushed                                                                                                             
2024-08-06 14:14:08,219 DEBUG: Analytics is enabled.
2024-08-06 14:14:08,222 TRACE: Saving analytics report to /tmp/tmpwep32goy
2024-08-06 14:14:08,498 DEBUG: Trying to spawn ['daemon', 'analytics', '/tmp/tmpwep32goy', '-vv']
2024-08-06 14:14:08,516 DEBUG: Spawned ['daemon', 'analytics', '/tmp/tmpwep32goy', '-vv'] with pid 47782
2024-08-06 14:14:08,526 TRACE: Process 47755 exiting with 0

What is interesting is that this command says:
Preparing to transfer data from '/home/fuchsfa/foundation-models/.dvc/cache/files/md5' to '/home/fuchsfa/foundation-models/dvc_cache/files/md5'
which is correct but dvc exp push origin -vv says:
Preparing to transfer data from '/home/fuchsfa/foundation-models/.dvc/cache/files/md5' to '/dvc_cache/files/md5'
which is incorrect. Is there a seperate config for dvc exp push origin?

@f-fuchs We will try to take a look at that bug, but in the meantime you can get things working by using an absolute path like /home/fuchsfa/foundation-models/dvc_cache for your remote.

I think I broke my dvc installation…

My config file is:

[core]
    autostage = true
    remote = local_remote
['remote "local_remote"']
    url = /home/fuchsfa/foundation-models/remote

dvc remote list returns:

dvc remote list
local_remote    /home/fuchsfa/foundation-models/remote

but dvc exp push origin -vv still errors with:

dvc exp push origin -vv
2024-08-07 13:59:22,989 DEBUG: v3.52.0 (pip), CPython 3.10.14 on Linux-5.15.0-113-generic-x86_64-with-glibc2.31
2024-08-07 13:59:22,989 DEBUG: command: /home/fuchsfa/foundation-models/.venv/bin/dvc exp push origin -vv
2024-08-07 13:59:22,990 TRACE: Namespace(quiet=0, verbose=2, cprofile=False, cprofile_dump=None, yappi=False, yappi_separate_threads=False, viztracer=False, viztracer_depth=None, viztracer_async=False, pdb=False, instrument=False, instrument_open=False, show_stack=False, cd='.', cmd='push', all_commits=False, rev=None, num=1, force=False, push_cache=True, dvc_remote=None, jobs=None, run_cache=True, git_remote='origin', experiment=[], func=<class 'dvc.commands.experiments.push.CmdExperimentsPush'>, parser=DvcParser(prog='dvc', usage=None, description='Data Version Control', formatter_class=<class 'dvc.cli.formatter.RawTextHelpFormatter'>, conflict_handler='error', add_help=False))
2024-08-07 13:59:24,789 DEBUG: git push experiment ['refs/exps/6b/c0fc63809e34fdd99e6ea0c93cd7f6afc25cd1/aspen-loge:refs/exps/6b/c0fc63809e34fdd99e6ea0c93cd7f6afc25cd1/aspen-loge'] -> 'origin'
Pushing git refs|                                                                               |0.00/? [00:00,      ?obj/s]/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/asyncssh/crypto/cipher.py:29: CryptographyDeprecationWarning: ARC4 has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.ARC4 and will be removed from this module in 48.0.0.
  from cryptography.hazmat.primitives.ciphers.algorithms import AES, ARC4
/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/asyncssh/crypto/cipher.py:30: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from this module in 48.0.0.
  from cryptography.hazmat.primitives.ciphers.algorithms import TripleDES
Enter passphrase for key '/home/fuchsfa/.ssh/id_ed25519': 
2024-08-07 13:59:51,053 DEBUG: dvc push experiment '[ExpRefInfo(baseline_sha='6bc0fc63809e34fdd99e6ea0c93cd7f6afc25cd1', name='aspen-loge')]'
2024-08-07 13:59:51,226 TRACE: switching fs to workspace                                                                    
2024-08-07 13:59:51,230 TRACE: switching fs to revision 0f93e29
2024-08-07 13:59:51,432 TRACE: Context during resolution of stage train:
{'encoder_decoder': {'mode': 'LINEAR_PROBING', 'checkpoint': None}, 'backbone': {'config_name': 'CONVNEXTV2_ATTO'}, 'decoder': {'out_channels': 1}, 'optimization': {'cudnn_benchmark': False}, 'training': {'lr': 0.001, 'epochs': 5, 'batch_size': 128, 'device': 'cuda', 'train_loader': {'num_workers': 2, 'shuffle': True, 'persistent_workers': True, 'pin_memory': True}, 'val_loader': {'num_workers': 2, 'shuffle': False, 'persistent_workers': True, 'pin_memory': True}, 'optimizer': {'name': 'AdamW', 'weight_decay': 0.05}, 'loss': {'name': 'MSELoss'}, 'lr_scheduler': {'name': 'OneCycleLR'}, 'metrics': {'PeakSignalNoiseRatio': {'data_range': 1}}}}
2024-08-07 13:59:51,438 TRACE:   138.33 ms in collecting stages from /
2024-08-07 13:59:51,439 TRACE:    17.44 mks in collecting stages from /.vscode
2024-08-07 13:59:51,441 TRACE:    32.03 mks in collecting stages from /dvclive
2024-08-07 13:59:51,442 TRACE:     7.99 mks in collecting stages from /dvclive/plots
2024-08-07 13:59:51,443 TRACE:    13.49 mks in collecting stages from /dvclive/plots/metrics
2024-08-07 13:59:51,444 TRACE:    10.66 mks in collecting stages from /dvclive/plots/metrics/train
2024-08-07 13:59:51,445 TRACE:    12.41 mks in collecting stages from /dvclive/plots/metrics/val
2024-08-07 13:59:51,445 TRACE:     8.08 mks in collecting stages from /src
2024-08-07 13:59:51,446 TRACE:    19.81 mks in collecting stages from /src/foundation_models
2024-08-07 13:59:51,447 TRACE:    16.18 mks in collecting stages from /src/foundation_models/backbones
2024-08-07 13:59:51,448 TRACE:    12.39 mks in collecting stages from /src/foundation_models/data
2024-08-07 13:59:51,448 TRACE:    12.99 mks in collecting stages from /src/foundation_models/decoders
2024-08-07 13:59:51,449 TRACE:    17.54 mks in collecting stages from /tests
Collecting                                                                                        |0.00 [00:00,    ?entry/s]
2024-08-07 13:59:51,487 DEBUG: Preparing to transfer data from '/home/fuchsfa/foundation-models/.dvc/cache/files/md5' to '/dvc_cache/files/md5'
2024-08-07 13:59:51,487 DEBUG: Preparing to collect status from '/dvc_cache/files/md5'
2024-08-07 13:59:51,488 DEBUG: Collecting status from '/dvc_cache/files/md5'
2024-08-07 13:59:51,491 DEBUG: Preparing to collect status from '/home/fuchsfa/foundation-models/.dvc/cache/files/md5'
2024-08-07 13:59:51,492 DEBUG: Collecting status from '/home/fuchsfa/foundation-models/.dvc/cache/files/md5'                
Pushing
2024-08-07 13:59:51,746 DEBUG: notifying Studio (https://studio.dvc.ai) about updated experiments                           
2024-08-07 13:59:51,746 TRACE: Sending {'repo_url': 'git@github.com:f-fuchs/foundation-models.git', 'client': 'dvc', 'refs': {'pushed': ['refs/exps/6b/c0fc63809e34fdd99e6ea0c93cd7f6afc25cd1/aspen-loge']}} to https://studio.dvc.ai/webhook/dvc
2024-08-07 13:59:52,369 TRACE: 404 Client Error: Not Found for url: https://studio.dvc.ai/webhook/dvc
Traceback (most recent call last):
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/utils/studio.py", line 72, in notify_refs
    r = post("webhook/dvc", token, data, base_url=base_url)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/utils/studio.py", line 47, in post
    r.raise_for_status()
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/requests/models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://studio.dvc.ai/webhook/dvc

2024-08-07 13:59:52,375 WARNING: failed to notify Studio: permission denied or repo not found in studio (status=404)
2024-08-07 13:59:52,376 TRACE: received response: {'detail': 'Permission denied or repo not found in Studio'} (status=404)
Experiment aspen-loge is up to date on Git remote 'origin'.
2024-08-07 13:59:52,572 ERROR: failed to push cache: [Errno 30] Read-only file system: '/dvc_cache'
Traceback (most recent call last):
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/experiments/push.py", line 126, in push
    result["uploaded"] = _push_cache(repo, pushed_refs_info, **kwargs)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/experiments/push.py", line 182, in _push_cache
    return repo.push(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/__init__.py", line 58, in wrapper
    return f(repo, *args, **kwargs)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/push.py", line 147, in push
    push_transferred, push_failed = ipush(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_data/index/push.py", line 76, in push
    result = transfer(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_data/hashfile/transfer.py", line 224, in transfer
    failed = _do_transfer(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_data/hashfile/transfer.py", line 121, in _do_transfer
    failed_ids.update(_add(src, dest, file_ids, **kwargs))
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_data/hashfile/transfer.py", line 165, in _add
    dest.add(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_data/hashfile/db/__init__.py", line 99, in add
    transferred = super().add(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_objects/db.py", line 171, in add
    self._init(parts)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_objects/db.py", line 82, in _init
    self.makedirs(self.fs.join(self.path, dname))
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_data/hashfile/db/local.py", line 43, in makedirs
    makedirs(path, exist_ok=True, mode=self._dir_mode)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_objects/fs/utils.py", line 126, in makedirs
    makedirs(head, exist_ok=exist_ok, mode=mode)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_objects/fs/utils.py", line 126, in makedirs
    makedirs(head, exist_ok=exist_ok, mode=mode)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_objects/fs/utils.py", line 126, in makedirs
    makedirs(head, exist_ok=exist_ok, mode=mode)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc_objects/fs/utils.py", line 136, in makedirs
    os.mkdir(path, mode)
OSError: [Errno 30] Read-only file system: '/dvc_cache'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/cli/__init__.py", line 211, in main
    ret = cmd.do_run()
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/cli/command.py", line 27, in do_run
    return self.run()
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/commands/experiments/push.py", line 55, in run
    result = self.repo.experiments.push(
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/experiments/__init__.py", line 364, in push
    return push(self.repo, *args, **kwargs)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/__init__.py", line 58, in wrapper
    return f(repo, *args, **kwargs)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/scm_context.py", line 143, in run
    return method(repo, *args, **kw)
  File "/home/fuchsfa/foundation-models/.venv/lib/python3.10/site-packages/dvc/repo/experiments/push.py", line 134, in push
    raise UploadError("failed to push cache", result) from e
dvc.repo.experiments.push.UploadError: failed to push cache

2024-08-07 13:59:52,613 DEBUG: Analytics is enabled.
2024-08-07 13:59:52,617 TRACE: Saving analytics report to /tmp/tmpfi3rk_jm
2024-08-07 13:59:53,210 DEBUG: Trying to spawn ['daemon', 'analytics', '/tmp/tmpfi3rk_jm', '-vv']
2024-08-07 13:59:53,230 DEBUG: Spawned ['daemon', 'analytics', '/tmp/tmpfi3rk_jm', '-vv'] with pid 99236
2024-08-07 13:59:53,241 TRACE: Process 99070 exiting with 255

Can you try running a new experiment and pushing? Each experiment will use the remote config saved when the experiment ran.