uninit: Fix crash due to trying to write to deleted keys db.

Reversion introduced by v6 mode support, affects v5 too.

Also fix a similar crash when the webapp is used to delete a repository.
This commit is contained in:
Joey Hess 2016-07-12 14:18:35 -04:00
parent db6b307ef7
commit 0c713a94bd
Failed to extract signature
6 changed files with 42 additions and 14 deletions

View file

@ -1,3 +1,5 @@
[[!meta title="git annex uninit causes SqlLite3 error"]]
### Please describe the problem.
I am basically having issues with `git annex uninit`
@ -74,3 +76,5 @@ Now if I add a local file I get a different error
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
I am super excited about what I can do with git-annex. I hope to setup and maintain encrypted repo(s) of some of my files, and access them by cloning a local copy of the encrypted repo and getting the files I want, using them, and then deleting the local copy.
> [[fixed|done]] --[[Joey]]

View file

@ -0,0 +1,18 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2016-07-12T17:48:50Z"
content="""
Not OSX specific; reproduced on Linux.
Instrumentation shows that removeInodeCaches is being called, when it
unannexes the annexed file. This is why a file has to have been added to
the repo to get the crash.
It's actually not necessary for removeInodeCaches to be called in a v5
repo, only in v6. If the code checked for v6 mode before writing to the
database, such problems would be avoided except for in v6 mode.
But, the actual fix is to make uninit close this and all other sqlite
db's before deleting the .git/annex directory.
"""]]