On 01.08.2013 07:32, Daniel Shahaf wrote:
> On Thu, Aug 01, 2013 at 07:04:15AM +0200, Branko Čibej wrote:
>> On 01.08.2013 05:38, Daniel Shahaf wrote:
>>> On Thu, Aug 01, 2013 at 05:31:56AM +0200, Branko Čibej wrote:
>>>> On 01.08.2013 04:17, Daniel Shahaf wrote:
>>>>> Stefan Fuhrmann wrote on Wed, Jul 31, 2013 at 19:58:06 +0200:
>>>>>> On Wed, Jul 31, 2013 at 7:48 PM, Ben Reser <b...@reser.org> wrote:
>>>>>>
>>>>>>> On Wed, Jul 31, 2013 at 7:44 AM, Philip Martin
>>>>>>> <philip.mar...@wandisco.com> wrote:
>>>>>>>> Looking at the repository path ('CONVERSION' and 'test') and the fact
>>>>>>>> that the error vanished when httpd was restarted is it possible this
>>>>>>>> involved a temporary repository being replaced by another repository at
>>>>>>>> the same path with the same UUID.  If that happens I think apache may
>>>>>>>> have been using the in-memory cache associated with the old repository
>>>>>>>> when accessing the new repository.
>>>>>>> Realistically the UUID really shouldn't be used by caching to decide
>>>>>>> if it's looking at the same repo.  Since it's exposed to clients users
>>>>>>> doing dump/load cycles are going to modify repos and end up with the
>>>>>>> same UUID.  I'd suggest that we add another UUID that isn't exposed to
>>>>>>> the client and that svnadmin can't modify with load.  The cache system
>>>>>>> should use this UUID for cache purposes.
>>>>>>>
>>>>>> +1. Let's call that UUID "instance ID".
>>>>> How about the inode number of the db/ directory?
>>>> Very portable, extremely cross-platform,
>>> apr_file_info.h
>>>
>>>> does not rely on details of filesystem design at all. :)
>>> When you design a filesystem that doesn't have a db/ directory at all, let 
>>> me
>>> know.
>> Not to mention that inodes can be reused. Do you really want to design
>> that kind of Heisenbug?
> How do you propose to avoid it?  If you just create a db/instance_uuid
> file, you'd have a heisenbug if people use 'zfs rollback' to restore
> a snapshot.

Yes, but at least it's something people actually have to /do/ instead of
just magically happening by itself. FWIW, your rollback example will
also break working copies, so that's not something I'd really worry
about solving.

People will also "svnadmin create" and then "cp -a" the results all over
the place -- a case where using an inode is better than using a UUID.

-- 
Branko Čibej | Director of Subversion
WANdisco // Non-Stop Data
e. br...@wandisco.com

Reply via email to