[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: broken lock test

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Fri, 26 Dec 2008 15:16:16 +0200 (Jerusalem Standard Time)

Brieuc Jeunhomme wrote on Fri, 28 Nov 2008 at 17:41 +0100:
>
> Hi,
>
> I have found something that looks to me like a bug, although I don't
> know how I came to this situation. I have more detail about the problem
> if needed, I can fill a bug report with all of it if it's confirmed it
> is a bug.
>
>
>
> I am the only one using the svn repository, on a remote server
> (svn+ssh://...). I am using 1.5.4. The symptoms are the following: I
> try to do an update, svn complains about a lock and suggests a cleanup.
> I perform a cleanup, and try to update again, without any success.
>
>
> % svn update
>
> Fetching external item into 'specs'
> svn: Working copy 'specs' locked
> svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for
> details)
> % ./build-subversion-1.5.4/bin/svn cleanup
> % ./build-subversion-1.5.4/bin/svn update
>
> Fetching external item into 'specs'
> svn: Working copy 'specs' locked
> svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for
> details)
>

Yes, that's obviously a bug --- especially if you can reproduce it with
a new checkout (i.e., it's not something gone broken in that specific
working copy).

Can you show us how to reproduce this bug, starting with a new
repository? If possible, package the instructions as a script (e.g.,
http://svn.tigris.org/repro-template.sh). Thanks.

>
>
> I am not that familiar with the svn unlock command, however, I have done

'svn unlock' has nothing to do with the lock files. (There's a sidebar
in the svnbook explaining the differences.)

> a couple of tests with strace and some scripts to process the strace
> results, and, if I do strace svn update and remove all the irrelevant
> garbage, I can see that the following happens during the svn update
> execution:
>
> open("specs/.svn/lock", O_WRONLY|O_CREAT|O_EXCL|O_LARGEFILE, 0666) = 3
> close(3) = 0
> open("specs/.svn/lock", O_WRONLY|O_CREAT|O_EXCL|O_LARGEFILE, 0666) = -1
> EEXIST (File exists)
> write(2, "svn: run \'svn cleanup\' to remove locks (type \'svn help
> cleanup\' for details)\n", 77) = 77
> unlink("specs/.svn/lock") = 0
>
>
> So, svn creates specs/.svn/lock, then, tries to create it again, fails
> because it already exists, complains about it, deletes it, and exits.
> This is the reason why I am pretty sure it is a bug: it complains about
> the existence of a file it just created.
>
>

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=992921
Received on 2008-12-26 14:25:12 CET

This is an archived mail posted to the Subversion Dev mailing list.