I've now had a second corruption in a repository that caused users to get
the error "Can't read length line in file" when trying to perform
operations on a specific version of a specific file.
Interestingly enough, it was the same user commiting the same file that
caused the first corruption we had.
OS: Windows 2003
WebServer: Apache/2.0.58 (Win32) DAV/2 SVN/1.3.1 mod_auth_sspi/1.0.3
Lots of disk space free (90gig or so).
We only use mod_dav_svn (no SVN standalone server).
SSPI is used to authenticate against a domain controller.
SSL is not being used.
Servers are on gigabit.
Local clients are on 100Mb.
Remote users are over Cisco IPSEC VPN with (obviously) whatever home
connection they have.
The file in question:
AAReports.mdb - a MS Access file. It's about 2.5-5 Mb in size. It
requires locking, and has a MIME type of "application/octet-stream."
The user in question seems to have some random network issues as well I
think. She connects over the VPN on a cable modem. Occasionally when
commiting she will get an error message about the connection being killed
(don't have the exact message, I can get it if it will help), or it will
'stall' for a very long time.
The commits that have caused the corruption, however, went 'fine' from her
standpoint. Though she did have at least one 'failed' attempt before it I
think (though not immediately).
I wrote a script to create ramdom binary data in a file 2-5 meg in size,
and commit it. I ran this script over night from my own VPN connection
(just commiting the same file over and over again with random changes). It
I'm going to have her try to do some commits to a copy of the repository to
see if we can eventually reproduce the issue there (so it doesn't effect
other developers). I had her do a few already and they went fine (save for
one that got the connection error).
With two repository corruptions in a couple weeks some folks are starting
to lose a bit of faith in SVN here. I'm very interested in finding this
problem. I can't provide my repository, but I can do testing on a copy of
the repository itself. I'm just not sure where to start. I suspect her
'choppy' internet connection may be at the heart of this, but I'm not sure
how to fake that (at home I'm behind a Linux router - if anyone knows of a
way to get it to fake a 'bad' connection that may help).
Anybody have any ideas on how I can reproduce this? Any test scenarios?
If more information is needed I will try to provide it.
// Andrew MacKenzie | http://www.edespot.com
// GPG public key: http://www.edespot.com/~amackenz/public.key
// Woman on Street: Sir, you are drunk; very, very drunk.
// Winston Churchill: Madame, you are ugly; very, very ugly.
// I shall be sober in the morning.
Received on Wed May 31 18:16:08 2006
- application/pgp-signature attachment: stored