On 18.01.2011 16:58, Julian Foad wrote:
> On Thu, 2011-01-13, Branko Čibej wrote:
>> This would indicate that the reference counting happens too soon ... in
>> other words, that a pristine can be dereferenced whilst some part of the
>> code (or database) still refers to it. That breaks database consistency
>> -- what happens if the user aborts a commit and then calls 'svn
>> cleanup', for example?
> If what I said about 'commit' is correct, then yes, that's bad and we
> should look for a better way. But I haven't tested it properly; I
> noticed that the commit failed saying that the DB failed a 'REFERENCES'
> clause, and what I said here is a hypothesis about how that happened.
> Investingating this is the second thing I would want to do next.
I beg to differ, it should be the first thing, because it's a
correctness issue. If the references in the database are maintained
correctly, then it should be safe to delete after each successful
That's assuming that any high-level operation involves a single
transaction, e.g., that a commit can't fail in some way that would
require the pristine to still be in place in order to recover, even if
the reference count in the database is 0.
Received on 2011-01-19 00:59:29 CET