"D.J. Heap" <djheap@dhiprovo.com> writes:
> By the way, I can reproduce this in seconds with my test program now,
> *if* I turn on Sophos AV realtime scanning. But I'm not sure it is
> really the same problem. It's possible Sophos is exaggerating a Windows
> problem, or it could just be causing a different but similar problem, so
> I'm trying to remove it from the equation.
If switching on "Sophos AV realtime scanning" causes a working program
to fail then that looks like a bug to me. As I have no idea what
"realtime scanning" involves I can't say whether it a bug in your
program, in Sophos, or in Windows.
> If anyone is interested I can provide the (fairly small and ugly) test
> program. It tries to mirror what I think is basically happening in
> Subversion:
>
> Create a temp file,
> update the temp file,
> close the temp file,
> turn read-only bit on for the temp file,
> turn off the read-only bit of the *real* file,
> rename the temp file onto the *real* file.
>
> Does this sequence look correct to the svn developers out there?
If I strace a commit (only bar1/foo1 modified) on Linux I see
open("/home/pm/sw/subversion/obj/wcstress.1158/.svn/entries", O_RDONLY) = 3
open("/home/pm/sw/subversion/obj/wcstress.1158/.svn/entries", O_RDONLY) = 3
open("/home/pm/sw/subversion/obj/wcstress.1158/.svn/entries", O_RDONLY) = 3
open("/home/pm/sw/subversion/obj/wcstress.1158/trunk/.svn/entries", O_RDONLY) = 3
open("/home/pm/sw/subversion/obj/wcstress.1158/trunk/bar1/.svn/entries", O_RDONLY) = 3
open("/home/pm/sw/subversion/obj/wcstress.1158/trunk/bar2/.svn/entries", O_RDONLY) = 3
open("/home/pm/sw/subversion/obj/wcstress.1158/trunk/bar1/.svn/tmp/entries", O_WRONLY|O_CREAT, 0666) = 13
stat64("/home/pm/sw/subversion/obj/wcstress.1158/trunk/bar1/.svn/entries", {st_mode=S_IFREG|0444, st_size=781, ...}) = 0
chmod("/home/pm/sw/subversion/obj/wcstress.1158/trunk/bar1/.svn/entries", 0666) = 0
rename("/home/pm/sw/subversion/obj/wcstress.1158/trunk/bar1/.svn/tmp/entries", "/home/pm/sw/subversion/obj/wcstress.1158/trunk/bar1/.svn/entries") = 0
stat64("/home/pm/sw/subversion/obj/wcstress.1158/trunk/bar1/.svn/entries", {st_mode=S_IFREG|0644, st_size=797, ...}) = 0
chmod("/home/pm/sw/subversion/obj/wcstress.1158/trunk/bar1/.svn/entries", 0444) = 0
so it looks like you are missing some stat calls.
> Of course, it doesn't recreate the problem yet without AV scanning
> going.
Perhaps you need to stress the filesystem, i.e. have a second
program/thread which is just opening, reading and/or writing, and then
closing a set of files.
--
Philip Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu May 22 21:40:07 2003