You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by "Michael S. Tsirkin" <ms...@mellanox.co.il> on 2005/06/06 20:43:52 UTC

issue with svn 1.2.0 client against 1.1.x server

Hello!
With subversion client version 1.2.0 

>time /usr/local/svn12/bin/svn list https://openib.org/svn
branches/
gen1/
gen2/
tags/
trunk/
0.395u 0.067s 1:53.62 0.3%      0+0k 0+0io 0pf+0w

While with client 1.1.4 against the same server I have:

>time svn list https://openib.org/svn
branches/
gen1/
gen2/
tags/
trunk/
0.019u 0.007s 0:04.29 0.2%      0+0k 0+0io 11pf+0w

So subversion 1.2.0 is taking 2 minutes where 1.1.4 takes 4 seconds
to contact the same remote repository.

This observation was independently confirmed by another svn user.
Running strace on versions 1.2.0 and 1.1.4, I see that subversion 1.2.0
does around 17000 system calls, while 1.1.4 only around 750.
Further, most of the time while client 1.2.0 appears stuck,
it is actually performing read/write/select calls, presumably from the socket.

Both clients are built from source with ./configure --prefix=xxxxx --with-ssl
The openib.org server is AFAIK 1.1.x

This problem prevents me from changing my client to 1.2.0.
Is this a known issue?

Thanks,
-- 
MST

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn 1.2.1 client x20 slower than 1.1.x

Posted by Ben Collins-Sussman <su...@collab.net>.
On Jul 10, 2005, at 1:47 PM, Ben Collins-Sussman wrote:

>
> On Jul 10, 2005, at 12:49 PM, Michael S. Tsirkin wrote:
>
>>
>> openib.org subversion server is world-readable, so its easy to test.
>> Please contact me off-list if you have questions - I'm not  
>> subscribed.
>>
>
> What version of svn is openib.org running?

The reason I ask is:  the svn 1.2 client now uses 'peg revisions'  
when peforming an 'ls' command, which means unlike a 1.1 client, it  
asks the server to search through history.   If the server is running  
svn 1.2.0, this may be an example of the server-side history- 
searching performance bugs fixed in svn 1.2.1.  You'd have to patch  
the server up to 1.2.1 to see if it makes a difference.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: history-tracing bug in 1.2 client (was Re: svn 1.2.1 client x20 slower than 1.1.x)

Posted by Greg Hudson <gh...@MIT.EDU>.
On Sun, 2005-07-10 at 15:50 -0500, Ben Collins-Sussman wrote:
> So instead of noticing, "hey, all the revisions are identical" and  
> doing zero history requests, the current logic says to  
> unconditionally fetch all logs back to r1.  I have no idea why this  
> is.  Can somebody else comment?

Perhaps you could try asking the author of that code?  I suggest
starting at r9355. :)


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: history-tracing bug in 1.2 client (was Re: svn 1.2.1 client x20 slower than 1.1.x)

Posted by Greg Hudson <gh...@MIT.EDU>.
On Sun, 2005-07-10 at 15:50 -0500, Ben Collins-Sussman wrote:
> The svn 1.2 client is requesting *all* logs from the server, before  
> it ever issues an 'ls' request.  And there's no reason for it do be  
> doing that.  That explains the 2 minute delay.

I fixed this in r15315, and nominated it for 1.2.2.

I'm not sure if this was made clear to Michael or not: although this
performance problem arises from an inefficiency in the client code,
upgrading the server to 1.1.x or higher will resolve the issue.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

history-tracing bug in 1.2 client (was Re: svn 1.2.1 client x20 slower than 1.1.x)

Posted by Ben Collins-Sussman <su...@collab.net>.
OK, this is a genuine bug, thanks for pointing it out again Michael  
(and sorry we didn't fix it earlier!)  I was able to reproduce the  
bug by running the svn 1.2 client in gdb against the openib.org  
server and watching what it was doing.

In short:

The svn 1.2 client is requesting *all* logs from the server, before  
it ever issues an 'ls' request.  And there's no reason for it do be  
doing that.  That explains the 2 minute delay.

In long:

As I suspected, the 1.2 svn client is doing history-tracing during an  
'svn ls', when an svn 1.1 client is not.

Because openib.org is running svn 1.0, the client's attempt to call  
svn_ra_get_locations() fails, so it falls back to running  
slow_locations(), which ultimately calls svn_ra_get_logs().

In gdb, I can see that slow_locations() is called with arguments of  
{start_revnum, end_revnum, peg_revnum} all set to 2829 (which is  
HEAD).  Yet somehow, at libsvn_client/ra.c:660, we call  
svn_ra_get_logs() on a range of "youngest through r1".  And the  
revision 1 is hard-coded!

So instead of noticing, "hey, all the revisions are identical" and  
doing zero history requests, the current logic says to  
unconditionally fetch all logs back to r1.  I have no idea why this  
is.  Can somebody else comment?



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn 1.2.1 client x20 slower than 1.1.x

Posted by "Michael S. Tsirkin" <ms...@mellanox.co.il>.
Quoting r. Ben Collins-Sussman <su...@collab.net>:
> Subject: Re: svn 1.2.1 client x20 slower than 1.1.x
> 
> 
> On Jul 10, 2005, at 12:49 PM, Michael S. Tsirkin wrote:
> >
> >openib.org subversion server is world-readable, so its easy to test.
> >Please contact me off-list if you have questions - I'm not subscribed.
> 
> What version of svn is openib.org running?

w3m https://openib.org/svn gets me

Powered by Subversion version 1.0.3 (r9775).

> Is it possible to change openib.org to allow plain http:// access,  
> not just https://?  Because of the SSL requirement, I can't analyze  
> the network trace.  (It's anonymous access anyway, so I'm not sure  
> why encryption is being forced.)

Sorry, I'm not the webmaster, so I have no way to do that. Here's a link

http://openib.org/contact.html

Maybe subversion can be set up to print out activity on top of SSL?

-- 
MST

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn 1.2.1 client x20 slower than 1.1.x

Posted by Ben Collins-Sussman <su...@collab.net>.
On Jul 10, 2005, at 12:49 PM, Michael S. Tsirkin wrote:
>
> openib.org subversion server is world-readable, so its easy to test.
> Please contact me off-list if you have questions - I'm not subscribed.

What version of svn is openib.org running?

Is it possible to change openib.org to allow plain http:// access,  
not just https://?  Because of the SSL requirement, I can't analyze  
the network trace.  (It's anonymous access anyway, so I'm not sure  
why encryption is being forced.)



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

svn 1.2.1 client x20 slower than 1.1.x

Posted by "Michael S. Tsirkin" <ms...@mellanox.co.il>.
Hi!


Quoting r. Michael S. Tsirkin <ms...@mellanox.co.il>:
> Subject: issue with svn 1.2.0 client against 1.1.x server
> 
> Hello!
> With subversion client version 1.2.0 
> 
> >time /usr/local/svn12/bin/svn list https://openib.org/svn
> branches/
> gen1/
> gen2/
> tags/
> trunk/
> 0.395u 0.067s 1:53.62 0.3%      0+0k 0+0io 0pf+0w
> 
> While with client 1.1.4 against the same server I have:
> 
> >time svn list https://openib.org/svn
> branches/
> gen1/
> gen2/
> tags/
> trunk/
> 0.019u 0.007s 0:04.29 0.2%      0+0k 0+0io 11pf+0w
> 
> So subversion 1.2.0 is taking 2 minutes where 1.1.4 takes 4 seconds
> to contact the same remote repository.
> 
> This observation was independently confirmed by another svn user.
> Running strace on versions 1.2.0 and 1.1.4, I see that subversion 1.2.0
> does around 17000 system calls, while 1.1.4 only around 750.
> Further, most of the time while client 1.2.0 appears stuck,
> it is actually performing read/write/select calls, presumably from the socket.
> 
> Both clients are built from source with ./configure --prefix=xxxxx --with-ssl
> The openib.org server is AFAIK 1.1.x
> 
> This problem prevents me from changing my client to 1.2.0.
> Is this a known issue?

I just re-tested with subversion 1.2.1 and I still have this issue.

/tmp>/usr/local/svn121/bin/svn --version
svn, version 1.2.1 (r15230)
   compiled Jul 10 2005, 20:35:28
[...]

/tmp>time /usr/local/svn121/bin/svn list https://openib.org/svn
[...]
1.550u 0.130s 2:20.21 1.1%      0+0k 0+0io 832pf+0w


/tmp>svn --version
svn, version 1.1.4 (r13838)
   compiled May  2 2005, 15:50:29
[...]

/tmp>time svn list https://openib.org/svn
[...]

0.070u 0.020s 0:04.28 2.1%      0+0k 0+0io 818pf+0w

openib.org subversion server is world-readable, so its easy to test.
Please contact me off-list if you have questions - I'm not subscribed.

-- 
MST

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: issue with svn 1.2.0 client against 1.1.x server

Posted by "C. Michael Pilato" <cm...@collab.net>.
Hmm... I saw similar behavior the other day, but assumed it was some sort of
fluke.

"Michael S. Tsirkin" <ms...@mellanox.co.il> writes:

> Hello!
> With subversion client version 1.2.0 
> 
> >time /usr/local/svn12/bin/svn list https://openib.org/svn
> branches/
> gen1/
> gen2/
> tags/
> trunk/
> 0.395u 0.067s 1:53.62 0.3%      0+0k 0+0io 0pf+0w
> 
> While with client 1.1.4 against the same server I have:
> 
> >time svn list https://openib.org/svn
> branches/
> gen1/
> gen2/
> tags/
> trunk/
> 0.019u 0.007s 0:04.29 0.2%      0+0k 0+0io 11pf+0w
> 
> So subversion 1.2.0 is taking 2 minutes where 1.1.4 takes 4 seconds
> to contact the same remote repository.
> 
> This observation was independently confirmed by another svn user.
> Running strace on versions 1.2.0 and 1.1.4, I see that subversion 1.2.0
> does around 17000 system calls, while 1.1.4 only around 750.
> Further, most of the time while client 1.2.0 appears stuck,
> it is actually performing read/write/select calls, presumably from the socket.
> 
> Both clients are built from source with ./configure --prefix=xxxxx --with-ssl
> The openib.org server is AFAIK 1.1.x
> 
> This problem prevents me from changing my client to 1.2.0.
> Is this a known issue?
> 
> Thanks,
> -- 
> MST
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org