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

Re: Tortoise (1.5.5) commit failed on large commit

From: Stefan Kueng <tortoisesvn_at_gmail.com>
Date: Sat, 13 Dec 2008 09:36:25 +0100

M. Z. wrote:
> It's not specified which protocol is being used to access the server,
> file: or
> svn: or http:, and whether it's a LAN or Internet access, so the
> following
> may not apply. I'm assuming the server is being accessed as a C: or
> LAN remap to R: type reference.
>
> One possibility, I believe, where the "DELETE PEND" is coming from is
> that
> the tempfile.tmp is being moved, via a rename, to the server. Since
> another
> directory is involved the rename is probably performing a non-atomic
> mark-for-delete/copy/delete sequence as a single I/O transaction, but
> the
> disk cache hasn't flushed file.svn-temp from the copy so it can
> complete
> the delete of tempfile.tmp before the process scheduler has
> reactivated
> the thread and it has gotten to where it wants re-create
> tempfile.tmp.
> In other words the server is not reacting fast enough so that there is
> enough
> time on the client's side to keep the I/O request queue from stacking
> requests up asynchrously. The CLOSE reporting success indicates it
> successfully got added to the cache's queue, not that the drive is
> actually in a state where the directory index was flushed so that the
> re-create can succeed.
>
> If this is the case, it probably indicates a latent bug in one of the
> drivers on
> the systems, either in the file system driver, the disk or LAN driver,
> or in
> the OpenFile function that is missing a wait_for_flush on DELETE_PEND
> so
> the race condition doesn't occur.
>
> As a workaround, in the TSVN code, an explicit Flush call after each
> Close of
> tempfile.tmp should suspend the thread long enough for the queues to
> clear.
> I suspect the disk cache delaying flushing is also the reason for the
> icon
> overlays not updating in a timely manner on some machines where it
> does
> on others, compunded by the extra I/O requests TSVNCache places on
> the queue when it's used.

This would have to be done in the svn library - we can't do that in TSVN
because TSVN never even sees the file handles used.

Stefan

-- 
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=983687
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].

Received on 2008-12-13 09:36:49 CET

This is an archived mail posted to the TortoiseSVN Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.