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

ugly problem found while trying to test KDE SVN

From: Stephan Kulow <coolo_at_kde.org>
Date: 2005-02-23 15:33:10 CET

Hi!

I did a little test import of KDE CVS to SVN (thanks to #cvs2svn :),
but found a severe problem when trying to some things at the limit.

You can see the directory I'm commiting to at
https://svn.kde.org/viewcvs/trunk/kde-i18n/templates/

Mainly I did two test commits. One where I was the only one commiting
and that worked. But when I asked someone else to commit a little change
(somewhere in the repository) while I was commiting, I had this output of
svn:

Sending others/ksetiwatch.pot
Sending others/kssh.pot
Sending others/kwebget.pot
Sending www.kde.org/media.pot
Transmitting file data ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................svn: Commit failed (details follow):
svn: Connection closed unexpectedly
svn: Your commit message was left in a temporary file:

Doing some strace on the server it became obvious, that the server was
simply running out of memory. Having had some bad experience with cvs,
we set a ulimit on our server to disallow (unintended) DoS attacks. But 128MB
are fine to do a commit, no?

Now before the server was aborted due the ulimit, it was acting like this in the
strace:

open("/home/kde/db/revs/330743", O_RDONLY|O_LARGEFILE) = 4
_llseek(4, 8452, [8452], SEEK_SET) = 0
read(4, "id: 1.0.r330743/8452\ntype: dir\np"..., 4096) = 627
close(4) = 0
open("/home/kde/db/revs/330742", O_RDONLY|O_LARGEFILE) = 4
_llseek(4, 7997, [7997], SEEK_SET) = 0
read(4, "id: 1.0.r330742/7997\ntype: dir\np"..., 4096) = 543
close(4) = 0
open("/home/kde/db/revs/330741", O_RDONLY|O_LARGEFILE) = 4
_llseek(4, 15693, [15693], SEEK_SET) = 0
read(4, "id: 1.0.r330741/15693\ntype: dir\n"..., 4096) = 636
close(4) = 0
open("/home/kde/db/revs/330740", O_RDONLY|O_LARGEFILE) = 4
_llseek(4, 19708, [19708], SEEK_SET) = 0
read(4, "id: 1.0.r330740/19708\ntype: dir\n"..., 4096) = 542
close(4) = 0
open("/home/kde/db/revs/330739", O_RDONLY|O_LARGEFILE) = 4
_llseek(4, 7760, [7760], SEEK_SET) = 0
read(4, "id: 1.0.r330739/7760\ntype: dir\np"..., 4096) = 546
close(4) = 0
open("/home/kde/db/revs/330738", O_RDONLY|O_LARGEFILE) = 4
_llseek(4, 10026, [10026], SEEK_SET) = 0
read(4, "id: 1.0.r330738/10026\ntype: dir\n"..., 4096) = 638
close(4) = 0
open("/home/kde/db/revs/330737", O_RDONLY|O_LARGEFILE) = 4
_llseek(4, 15292, [15292], SEEK_SET) = 0
read(4, "id: 1.0.r330737/15292\ntype: dir\n"..., 4096) = 633
close(4) = 0
open("/home/kde/db/revs/330736", O_RDONLY|O_LARGEFILE) = 4
_llseek(4, 80588, [80588], SEEK_SET) = 0
read(4, "id: 1.0.r330736/80588\ntype: dir\n"..., 4096) = 616
close(4) = 0
open("/home/kde/db/revs/330735", O_RDONLY|O_LARGEFILE) = 4
_llseek(4, 16008, [16008], SEEK_SET) = 0
read(4, "id: 1.0.r330735/16008\ntype: dir\n"..., 4096) = 696
close(4) = 0
open("/home/kde/db/revs/330734", O_RDONLY|O_LARGEFILE) = 4
_llseek(4, 11384, [11384], SEEK_SET) = 0
read(4, "id: 1.0.r330734/11384\ntype: dir\n"..., 4096) = 539
close(4) = 0
open("/home/kde/db/revs/330733", O_RDONLY|O_LARGEFILE) = 4
_llseek(4, 13222, [13222], SEEK_SET) = 0
read(4, "id: 1.0.r330733/13222\ntype: dir\n"..., 4096) = 551
close(4) = 0
open("/home/kde/db/revs/330732", O_RDONLY|O_LARGEFILE) = 4
_llseek(4, 13480, [13480], SEEK_SET) = 0
read(4, "id: 1.0.r330732/13480\ntype: dir\n"..., 4096) = 551
close(4) = 0
open("/home/kde/db/revs/330731", O_RDONLY|O_LARGEFILE) = 4
_llseek(4, 16106, [16106], SEEK_SET) = 0
read(4, "id: 1.0.r330731/16106\ntype: dir\n"..., 4096) = 536
close(4) = 0
open("/home/kde/db/revs/330730", O_RDONLY|O_LARGEFILE) = 4
_llseek(4, 26851, [26851], SEEK_SET) = 0
read(4, "id: 1.0.r330730/26851\ntype: dir\n"..., 4096) = 799
close(4) = 0
open("/home/kde/db/revs/330729", O_RDONLY|O_LARGEFILE) = 4
brk(0) = 0xe805000
brk(0xe827000) = 0xe827000

Basically it opened all revisions downwards starting from HEAD and seeked
something in there and (I asumme) puts it in some list eating up memory.
As you can find out on the viewcvs, it's not the case that every of these revisions
saw a change to /trunk/kde-i18n/templates, so from what I understood it shouldn't
open them, e.g. https://svn.kde.org/viewcvs?rev=330730&view=rev is pretty
unrelated.

Why is svnserve (version 1.1.3 btw) doing that? If this is happening whenever
two people commit at the same time, then I'm afraid this would make KDE moving
to subversion impossible ;(

Greetings, Stephan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Feb 23 21:39:46 2005

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