psychoinformatics-de / datalad-hirni

DataLad extension for (semi-)automated, reproducible processing of (medical/neuro)imaging data
http://datalad.org
Other
5 stars 8 forks source link

failed to retrieve content from remote #184

Closed lsempf closed 3 years ago

lsempf commented 3 years ago

Hi there,

I have my data in bids format and everything seems to be ok in this bids folder. If I want to install this bids folder as a subdataset in another project, everything seems to work without any problems.

If I then want to 'datalad get' files in the installed subdataset, the following error occurs:

derivatives/bids$ datalad get participants.json
ERROR  ]   failed to retrieve content from remote                                                                                                                                                      
[ERROR  ]   failed to retrieve content from remote                                                                                                                                                      
[ERROR  ]   failed to retrieve content from remote                                                                                                                                                      
[ERROR  ] failed to retrieve content from remote                                                                                                                                                        
| failed to retrieve content from remote
| failed to retrieve content from remote [get(/derivatives/bids/participants.json)] 
get(error): participants.json (file) [failed to retrieve content from remote
failed to retrieve content from remote
failed to retrieve content from remote]

I have several datalad projects and several subdatasets installed in them - everything works without problems there. But if I install my bids order somewhere as a subdataset, then I can no longer access any files there. Unfortunately, I cannot find out what is different / wrong with my bids folder.

I am using datalad 0.14.0

bpoldrack commented 3 years ago

Hi @lsempf,

this needs some investigation on what exactly you have there. Apparently your derivatives/bids doesn't know actually available sources for its content. This suggests that either the way you installed it wasn't quite right or the source you installed from didn't have the content and other sources are not (yet) known to your derivatives/bids.

So:

  1. How exactly did you install the bids dataset into derivatives?
  2. What does git annex whereis participants.json output when called from within derivatives/bids?
  3. What does the same command say when you run it from within the dataset that you installed from?
lsempf commented 3 years ago

Hi @bpoldrack

  1. I used this command to install the bids dataset in derivatives:

datalad install --dataset . --source /path/to/bids bids --recursive

/derivatives/bids$ git annex whereis participants.json
whereis participants.json (1 copy) 
    f6e048ff-d7aa-4e9a-a51e-2603dfb46b8f -- lsempf@medusa:/home/data/sfb_cuetarget/bids [origin]
ok
  1. /bids$ git annex whereis participants.json
    whereis participants.json (1 copy) 
    f6e048ff-d7aa-4e9a-a51e-2603dfb46b8f -- lsempf@medusa:/home/data/sfb_cuetarget/bids [here]
    ok
lsempf commented 3 years ago

Hi @bpoldrack,

I datalad unlock-ed the original bids folder before installing bids again in derivatives (with the command mentioned above). Now I can datalad get & datalad unlock all files in derivatives/bids

bpoldrack commented 3 years ago

I datalad unlock-ed the original bids folder before installing bids again in derivatives (with the command mentioned above). Now I can datalad get & datalad unlock all files in derivatives/bids

Hm. Unlocking should not be necessary in order to be able to successfully get the content. If that really is the only difference, there's something very fishy going on. Installation command and git annex whereis ... look like everything is fine, though.

The only thing coming to my mind at the moment is, that you may be logged into the wrong node when you try to datalad get. If your original bids dataset was installed into derivatives the way you described (that is: --source local/path), and you then try to get while being in an environment where derivatives is there but your original bids isn't mounted in the file system, then that would be an explanation. Could that be the case?

lsempf commented 3 years ago

I'm not sure if this is the case. In fact I installed subdata sets and used datalad get always the same way and never had such problems. I don't know now what I could have done differently.

bpoldrack commented 3 years ago

@lsempf : Can't easily tell what's different either. What I can offer is a screen-sharing session to dig into it - you have my email ... ;-) Or - if you prefer to have that figured out via written ping-pong - we can do that in an issue with datalad itself, since I see no indication of that actually being related to datalad-hirni at the moment.

Unless we discover that hirni left the bids dataset in a messed-up state this looks very unlikely to be related to datalad-hirni, though. More likely usage of datalad/git-annex in general. Therefore I will close the issue here and we can reopen, if we find it is indeed related to hirni and its usage.