Trouble using datalad install on a Samba mounted folder?

Hi Neurostars community,

I work at a smaller university with little to no dedicated research IT. My department is currently paying for network storage through the university’s regular IT, which is made available to us through Samba-mounted folders. I understand Samba folders are generally still git-able when one is running things off of one’s local machine, so I thought it might be a good idea to datalad install datasets onto my Samba share to save some storage space.

However, when I cd to the Samba-mounted folder in a terminal and attempt to datalad install an OpenNeuro dataset, I get the following error:

(base) mthieu@LMC0000683 OpenNeuro % datalad install https://github.com/OpenNeuroDatasets/ds004182.git
[INFO   ] git-annex: Not initialized.
[INFO   ] init: 1 failed
install(error): /Volumes/mthieulab/Data/OpenNeuro/ds004182 (dataset) [CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex init -c annex.dotfiles=true' failed with exitcode 1 under /Volumes/mthieulab/Data/OpenNeuro/ds004182] [CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex init -c annex.dotfiles=true' failed with exitcode 1 under /Volumes/mthieulab/Data/OpenNeuro/ds004182]

The same error appears when I try other OpenNeuro datasets, and other datalad-datasets as well. I haven’t been able to trace exit code 1 to a specific cause, though it’s easy for me to wonder whether it’s a permissions issue on my Samba folder. I did attempt to git init a repository in a Samba subfolder, and that worked, so git itself works, but maybe not git-annex?

In case it’s helpful, I have confirmed that datalad install appears to work when I attempt to install the same dataset to a folder that’s on my local machine:

(base) mthieu@LMC0000683 Repos % datalad install https://github.com/OpenNeuroDatasets/ds004182.git
[INFO   ] Remote origin not usable by git-annex; setting annex-ignore
[INFO   ] https://github.com/OpenNeuroDatasets/ds004182.git/config download failed: Not Found
install(ok): /Users/mthieu/Repos/ds004182 (dataset)

Those two warnings did concern me slightly, but I have confirmed that I can datalad get files within the repo on my local so I think datalad is behaving as usual there.

I did look at the post Datalad create errors due to permissions on network drive but it doesn’t seem to be the same issue as I’m not trying to datalad create but rather to download.

Thank you for your help!

oh hoh. samba will be yet another dance I think we overall tried to avoid :wink: worth checking issues on Google Search but meanwhile, could you share output of

datalad wtf (there will be about filesystems)

and datalad -l debug install https://github.com/OpenNeuroDatasets/ds004182.git so we could see the details of operation behind.

Thanks for the quick reply! Yeah, I figured Samba was not providing expected filesystem behavior to datalad…

Running datalad wtf from a Samba directory:

# WTF
## configuration <SENSITIVE, report disabled by configuration>
## credentials
  - keyring:
    - active_backends:
      - macOS Keyring
      - PlaintextKeyring with no encyption v.1.0 at /Users/mthieu/.local/share/python_keyring/keyring_pass.cfg
    - config_file: /Users/mthieu/.config/python_keyring/keyringrc.cfg
    - data_root: /Users/mthieu/.local/share/python_keyring
## datalad
  - version: 1.2.1
## dependencies
  - annexremote: 1.6.6
  - boto3: 1.39.1
  - cmd:7z: 17.05
  - cmd:annex: 10.20250828
  - cmd:bundled-git: UNKNOWN
  - cmd:git: 2.39.5
  - cmd:ssh: 9.9p2
  - cmd:system-git: 2.39.5
  - cmd:system-ssh: 9.9p2
  - humanize: 4.12.3
  - iso8601: 2.1.0
  - keyring: 25.6.0
  - keyrings.alt: 5.0.2
  - msgpack: 1.1.1
  - platformdirs: 4.3.8
  - requests: 2.32.4
## environment
  - LANG: en_US.UTF-8
  - LC_TERMINAL: iTerm2
  - LC_TERMINAL_VERSION: 3.5.14
  - PATH: /Users/mthieu/.deno/bin:/opt/miniconda3/bin:/opt/miniconda3/condabin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin:/Library/TeX/texbin:/opt/homebrew/bin:/Applications/iTerm.app/Contents/Resources/utilities
## extensions
## git-annex
  - build flags:
    - Assistant
    - Webapp
    - Pairing
    - FsEvents
    - TorrentParser
    - MagicMime
    - Servant
    - Benchmark
    - Feeds
    - Testsuite
    - S3
    - WebDAV
  - dependency versions:
    - aws-0.24.4
    - bloomfilter-2.0.1.2
    - crypton-1.0.4
    - DAV-1.3.4
    - feed-1.3.2.1
    - ghc-9.10.2
    - http-client-0.7.19
    - persistent-sqlite-2.13.3.1
    - torrent-10000.1.3
    - uuid-1.3.16
    - yesod-1.6.2.1
  - key/value backends:
    - SHA256E
    - SHA256
    - SHA512E
    - SHA512
    - SHA224E
    - SHA224
    - SHA384E
    - SHA384
    - SHA3_256E
    - SHA3_256
    - SHA3_512E
    - SHA3_512
    - SHA3_224E
    - SHA3_224
    - SHA3_384E
    - SHA3_384
    - SKEIN256E
    - SKEIN256
    - SKEIN512E
    - SKEIN512
    - BLAKE2B256E
    - BLAKE2B256
    - BLAKE2B512E
    - BLAKE2B512
    - BLAKE2B160E
    - BLAKE2B160
    - BLAKE2B224E
    - BLAKE2B224
    - BLAKE2B384E
    - BLAKE2B384
    - BLAKE2BP512E
    - BLAKE2BP512
    - BLAKE2S256E
    - BLAKE2S256
    - BLAKE2S160E
    - BLAKE2S160
    - BLAKE2S224E
    - BLAKE2S224
    - BLAKE2SP256E
    - BLAKE2SP256
    - BLAKE2SP224E
    - BLAKE2SP224
    - SHA1E
    - SHA1
    - MD5E
    - MD5
    - WORM
    - URL
    - GITBUNDLE
    - GITMANIFEST
    - VURL
    - X*
  - operating system: darwin aarch64
  - remote types:
    - git
    - gcrypt
    - p2p
    - S3
    - bup
    - directory
    - rsync
    - web
    - bittorrent
    - webdav
    - adb
    - tahoe
    - glacier
    - ddar
    - git-lfs
    - httpalso
    - borg
    - rclone
    - hook
    - external
    - compute
    - mask
  - supported repository versions:
    - 8
    - 9
    - 10
  - upgrade supported from repository versions:
    - 0
    - 1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    - 10
  - version: 10.20250828
## location
  - path: /Volumes/mthieulab/Data/OpenNeuro
  - type: directory
## metadata.extractors
## metadata.filters
## metadata.indexers
## python
  - implementation: CPython
  - version: 3.13.7
## system
  - distribution: darwin/24.6.0 15.6.1/arm64
  - encoding:
    - default: utf-8
    - filesystem: utf-8
    - locale.prefered: UTF-8
  - filesystem:
    - CWD:
      - path: /Volumes/mthieulab/Data/OpenNeuro
    - HOME:
      - path: /Users/mthieu
    - TMP:
      - path: /var/folders/pc/93_0zgg97pb6b3b5kzm9w63wsj4d83/T
  - max_path_length: 289
  - name: Darwin
  - release: 24.6.0
  - type: posix
  - version: Darwin Kernel Version 24.6.0: Mon Jul 14 11:30:40 PDT 2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T6041
Hint: install psutil to get filesystem information

I haven’t followed the hint about installing psutil yet!

And then the output of datalad -l debug install:

(base) mthieu@LMC0000683 OpenNeuro % datalad -l debug install https://github.com/OpenNeuroDatasets/ds004182.git
[DEBUG  ] Command line args 1st pass for DataLad 1.2.1. Parsed: Namespace(cfg_overrides=None, change_path=None, _=False, log_level='warning', common_on_failure=None, common_report_status=None, common_report_type=None, common_result_renderer='tailored', common_debug=False, common_idebug=False, version=None) Unparsed: ['install', 'https://github.com/OpenNeuroDatasets/ds004182.git']
[DEBUG  ] Building doc for <class 'datalad.core.distributed.clone.Clone'>
[DEBUG  ] Building doc for <class 'datalad.local.subdatasets.Subdatasets'>
[DEBUG  ] Building doc for <class 'datalad.distribution.get.Get'>
[DEBUG  ] Building doc for <class 'datalad.distribution.install.Install'>
[DEBUG  ] Parsing known args among ['/opt/homebrew/bin/datalad', '-l', 'debug', 'install', 'https://github.com/OpenNeuroDatasets/ds004182.git']
[DEBUG  ] Determined class of decorated function: <class 'datalad.distribution.install.Install'>
[DEBUG  ] Install passes into install source=https://github.com/OpenNeuroDatasets/ds004182.git
[DEBUG  ] Determined class of decorated function: <class 'datalad.distribution.install.Install'>
[DEBUG  ] Determined class of decorated function: <class 'datalad.core.distributed.clone.Clone'>
[DEBUG  ] Determined clone target path from source
[DEBUG  ] Resolved clone target path to: '/Volumes/mthieulab/Data/OpenNeuro/ds004182'
[DEBUG  ] Apply ephemeral patch to clone.py:_pre_annex_init_processing_
[DEBUG  ] Apply ephemeral patch to clone.py:_post_annex_init_processing_
[DEBUG  ] Apply RIA patch to clone.py:_post_git_init_processing_
[DEBUG  ] Apply RIA patch to clone.py:_pre_final_processing_
[DEBUG  ] Run ['git', 'version'] (protocol_class=StdOutErrCapture) (cwd=None)
[DEBUG  ] Finished ['git', 'version'] with status 0
[DEBUG  ] Git clone from https://github.com/OpenNeuroDatasets/ds004182.git to /Volumes/mthieulab/Data/OpenNeuro/ds004182
[DEBUG  ] Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'clone', '--progress', 'https://github.com/OpenNeuroDatasets/ds004182.git', '/Volumes/mthieulab/Data/OpenNeuro/ds004182'] (protocol_class=GitProgress) (cwd=None)
[DEBUG  ] Non-progress stderr: b"Cloning into '/Volumes/mthieulab/Data/OpenNeuro/ds004182'...\n"
# I omitted several lines here that appeared to correspond only to updating the console progress bar
[DEBUG  ] Finished ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'clone', '--progress', 'https://github.com/OpenNeuroDatasets/ds004182.git', '/Volumes/mthieulab/Data/OpenNeuro/ds004182'] with status 0
[DEBUG  ] Git clone completed
[DEBUG  ] Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'for-each-ref', '--format=%(refname:strip=2)', 'refs/heads', 'refs/remotes'] (protocol_class=GeneratorStdOutErrCapture) (cwd=/Volumes/mthieulab/Data/OpenNeuro/ds004182)
[DEBUG  ] Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'for-each-ref', '--format=%(refname:strip=2)', 'refs/heads', 'refs/remotes'] (protocol_class=GeneratorStdOutErrCapture) (cwd=/Volumes/mthieulab/Data/OpenNeuro/ds004182)
[DEBUG  ] Run ['git', 'config', '-z', '-l', '--show-origin'] (protocol_class=StdOutErrCapture) (cwd=/Volumes/mthieulab/Data/OpenNeuro/ds004182)
[DEBUG  ] Finished ['git', 'config', '-z', '-l', '--show-origin'] with status 0
[DEBUG  ] Run ['git', 'config', '-z', '-l', '--show-origin', '--file', '/Volumes/mthieulab/Data/OpenNeuro/ds004182/.datalad/config'] (protocol_class=StdOutErrCapture) (cwd=/Volumes/mthieulab/Data/OpenNeuro/ds004182)
[DEBUG  ] Finished ['git', 'config', '-z', '-l', '--show-origin', '--file', '/Volumes/mthieulab/Data/OpenNeuro/ds004182/.datalad/config'] with status 0
[DEBUG  ] Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'for-each-ref', '--format=%(refname:strip=2)', 'refs/heads', 'refs/remotes'] (protocol_class=GeneratorStdOutErrCapture) (cwd=/Volumes/mthieulab/Data/OpenNeuro/ds004182)
[DEBUG  ] Determined origin to be remote of AnnexRepo(/Volumes/mthieulab/Data/OpenNeuro/ds004182)
[DEBUG  ] Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'for-each-ref', '--format=%(refname:strip=2)', 'refs/heads', 'refs/remotes'] (protocol_class=GeneratorStdOutErrCapture) (cwd=/Volumes/mthieulab/Data/OpenNeuro/ds004182)
[DEBUG  ] Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'rev-parse', '--verify', 'HEAD^{commit}'] (protocol_class=GeneratorStdOutErrCapture) (cwd=/Volumes/mthieulab/Data/OpenNeuro/ds004182)
[DEBUG  ] Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'for-each-ref', '--format=%(refname:strip=2)', 'refs/heads', 'refs/remotes'] (protocol_class=GeneratorStdOutErrCapture) (cwd=/Volumes/mthieulab/Data/OpenNeuro/ds004182)
[DEBUG  ] Initializing annex repo at /Volumes/mthieulab/Data/OpenNeuro/ds004182
[DEBUG  ] Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'for-each-ref', '--format=%(refname:strip=2)', 'refs/heads', 'refs/remotes'] (protocol_class=GeneratorStdOutErrCapture) (cwd=/Volumes/mthieulab/Data/OpenNeuro/ds004182)
[DEBUG  ] Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'for-each-ref', '--format=%(refname:strip=2)', 'refs/heads'] (protocol_class=GeneratorStdOutErrCapture) (cwd=/Volumes/mthieulab/Data/OpenNeuro/ds004182)
[DEBUG  ] Run ['git', 'annex', 'version', '--raw'] (protocol_class=StdOutErrCapture) (cwd=None)
[DEBUG  ] Finished ['git', 'annex', 'version', '--raw'] with status 0
[DEBUG  ] Run ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', 'init', '-c', 'annex.dotfiles=true'] (protocol_class=AnnexInitOutput) (cwd=/Volumes/mthieulab/Data/OpenNeuro/ds004182)
[INFO   ] git-annex: Not initialized.
[INFO   ] init: 1 failed
[DEBUG  ] Finished ['git', '-c', 'diff.ignoreSubmodules=none', '-c', 'core.quotepath=false', 'annex', 'init', '-c', 'annex.dotfiles=true'] with status 1
[DEBUG  ] CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex init -c annex.dotfiles=true' failed with exitcode 1 under /Volumes/mthieulab/Data/OpenNeuro/ds004182 [install(/Volumes/mthieulab/Data/OpenNeuro/ds004182)]
install(error): /Volumes/mthieulab/Data/OpenNeuro/ds004182 (dataset) [CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex init -c annex.dotfiles=true' failed with exitcode 1 under /Volumes/mthieulab/Data/OpenNeuro/ds004182] [CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex init -c annex.dotfiles=true' failed with exitcode 1 under /Volumes/mthieulab/Data/OpenNeuro/ds004182]
[DEBUG  ] could not perform all requested actions: datalad.support.exceptions.IncompleteResultsError(Command did not complete successfully. 1 failed:
[{'action': 'install',
  'error_message': "CommandError: 'git -c diff.ignoreSubmodules=none -c "
                   "core.quotepath=false annex init -c annex.dotfiles=true' "
                   'failed with exitcode 1 under '
                   '/Volumes/mthieulab/Data/OpenNeuro/ds004182',
  'exception': CommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex init -c annex.dotfiles=true' failed with exitcode 1 under /Volumes/mthieulab/Data/OpenNeuro/ds004182 [clone.py:clone_dataset:521,clone.py:_post_gitclone_processing_:589,clone.py:_annex_init:700,annexrepo.py:_init:1539,annexrepo.py:_call_annex:996,runner.py:run:243],
  'exception_traceback': '[clone.py:clone_dataset:521,clone.py:_post_gitclone_processing_:589,clone.py:_annex_init:700,annexrepo.py:_init:1539,annexrepo.py:_call_annex:996,runner.py:run:243]',
  'message': "CommandError: 'git -c diff.ignoreSubmodules=none -c "
             "core.quotepath=false annex init -c annex.dotfiles=true' failed "
             'with exitcode 1 under /Volumes/mthieulab/Data/OpenNeuro/ds004182',
  'path': '/Volumes/mthieulab/Data/OpenNeuro/ds004182',
  'refds': None,
  'source': {'default_destpath': 'ds004182',
             'giturl': 'https://github.com/OpenNeuroDatasets/ds004182.git',
             'source': 'https://github.com/OpenNeuroDatasets/ds004182.git',
             'type': 'giturl',
             'version': None},
  'source_url': 'https://github.com/OpenNeuroDatasets/ds004182.git',
  'status': 'error',
  'type': 'dataset'}])