upgrade: Handle upgrade to v6 when the repository already contains v6 unlocked files whose content is already present.
Closes https://github.com/datalad/datalad/issues/1020 The use of runWriter in scanUnlockedFiles broke due to this change; it failed with blocked indefinitely in mvar, because the database write handle was taken while linkFromAnnex needed to also write to it (to update the inode cache). So, switched to using a separate runWriter for each call to addAssociatedFileFast. A little less efficient, but not greatly; the writes should all still be cached.
This commit is contained in:
parent
148bd0dbfd
commit
8e22114735
4 changed files with 43 additions and 16 deletions
|
@ -35,4 +35,13 @@ $> ./v6-push.sh 6 2>&1 | grep '>>>'
|
|||
>
|
||||
> I am not sure yet why the keys database lacked an entry for the file;
|
||||
> perhaps something to do with it being a v6 unlocked file in a v5
|
||||
> repository. --[[Joey]]
|
||||
> repository.
|
||||
>
|
||||
> Ok.. Seems that cloning to a v5 repository, and then copying/getting
|
||||
> objects into it, and then upgrading to v6 reproduces the problem with the
|
||||
> keys database. The inode cache does not get populated for unlocked files
|
||||
> on upgrade. Also, unlocked files stay as pointer files even when their
|
||||
> content is present in annex/objects. Fixed the upgrade process to handle
|
||||
> this case.
|
||||
>
|
||||
> [[fixed|done]]] --[[Joey]]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue