php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #48995 resuming svn switch is too slow
Submitted: 2009-07-21 05:16 UTC Modified: 2012-12-23 15:50 UTC
From: xuefer at gmail dot com Assigned:
Status: Wont fix Package: Systems problem
PHP Version: Irrelevant OS: Any
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2009-07-21 05:16 UTC] xuefer at gmail dot com
Description:
------------
when a network issue interrupted "svn switch" in the half, it would be really slow to begin the switch, nothing display until half an hour or so later, it begin switching like normal speed. maybe svn:// protocol could be faster on this? but i don't find any svn:// access


strace -s100 svn switch ...
setsockopt(4, SOL_TCP, TCP_NODELAY, [1], 4) = 0
fcntl64(4, F_GETFL)                     = 0x2 (flags O_RDWR)
fcntl64(4, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
connect(4, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("69.147.83.196")}, 16) = -1 EINPROGRESS (Operation now in progress)
poll([{fd=4, events=POLLOUT}], 1, 3600000) = 1 ([{fd=4, revents=POLLOUT}])
getsockopt(4, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
fcntl64(4, F_SETFL, O_RDWR)             = 0
send(4, "OPTIONS /repository/php/php-src/branches/PHP_5_3 HTTP/1.1\r\nHost: svn.php.net\r\nUser-Agent: SVN/1.6.2 ("..., 447, 0) = 447
send(4, "<?xml version=\"1.0\" encoding=\"utf-8\"?><D:options xmlns:D=\"DAV:\"><D:activity-collection-set/></D:optio"..., 104, 0) = 104
poll([{fd=4, events=POLLIN}], 1, 3600000) = 1 ([{fd=4, revents=POLLIN}])
recv(4, "HTTP/1.1 200 OK\r\nDate: Tue, 21 Jul 2009 05:13:52 GMT\r\nServer: Apache/2.2.9 (FreeBSD) mod_ssl/2.2.9 Op"..., 4096, 0) = 969
send(4, "PROPFIND /repository/php/php-src/branches/PHP_5_3 HTTP/1.1\r\nHost: svn.php.net\r\nUser-Agent: SVN/1.6.2 "..., 432, 0) = 432
send(4, "<?xml version=\"1.0\" encoding=\"utf-8\"?><propfind xmlns=\"DAV:\"><prop><version-controlled-configuration "..., 300, 0) = 300
poll([{fd=4, events=POLLIN}], 1, 3600000) = 1 ([{fd=4, revents=POLLIN}])
recv(4, "HTTP/1.1 207 Multi-Status\r\nDate: Tue, 21 Jul 2009 05:13:52 GMT\r\nServer: Apache/2.2.9 (FreeBSD) mod_ss"..., 4096, 0) = 955
send(4, "PROPFIND /repository/!svn/vcc/default HTTP/1.1\r\nHost: svn.php.net\r\nUser-Agent: SVN/1.6.2 (r37639) neo"..., 420, 0) = 420
send(4, "<?xml version=\"1.0\" encoding=\"utf-8\"?><propfind xmlns=\"DAV:\"><prop><checked-in xmlns=\"DAV:\"/></prop><"..., 111, 0) = 111
poll([{fd=4, events=POLLIN}], 1, 3600000) = 1 ([{fd=4, revents=POLLIN}])
recv(4, "HTTP/1.1 207 Multi-Status\r\nDate: Tue, 21 Jul 2009 05:13:52 GMT\r\nServer: Apache/2.2.9 (FreeBSD) mod_ss"..., 4096, 0) = 626
send(4, "PROPFIND /repository/!svn/bln/284459 HTTP/1.1\r\nHost: svn.php.net\r\nUser-Agent: SVN/1.6.2 (r37639) neon"..., 419, 0) = 419
send(4, "<?xml version=\"1.0\" encoding=\"utf-8\"?><propfind xmlns=\"DAV:\"><prop><baseline-collection xmlns=\"DAV:\"/"..., 148, 0) = 148
poll([{fd=4, events=POLLIN}], 1, 3600000) = 1 ([{fd=4, revents=POLLIN}])
recv(4, "HTTP/1.1 207 Multi-Status\r\nDate: Tue, 21 Jul 2009 05:13:52 GMT\r\nServer: Apache/2.2.9 (FreeBSD) mod_ss"..., 4096, 0) = 687
send(4, "PROPFIND /repository/php/php-src/branches/PHP_5_3 HTTP/1.1\r\nHost: svn.php.net\r\nUser-Agent: SVN/1.6.2 "..., 432, 0) = 432
send(4, "<?xml version=\"1.0\" encoding=\"utf-8\"?><propfind xmlns=\"DAV:\"><prop><version-controlled-configuration "..., 300, 0) = 300
poll([{fd=4, events=POLLIN}], 1, 3600000) = 1 ([{fd=4, revents=POLLIN}])
recv(4, "HTTP/1.1 207 Multi-Status\r\nDate: Tue, 21 Jul 2009 05:13:53 GMT\r\nServer: Apache/2.2.9 (FreeBSD) mod_ss"..., 4096, 0) = 955
send(4, "PROPFIND /repository/!svn/vcc/default HTTP/1.1\r\nHost: svn.php.net\r\nUser-Agent: SVN/1.6.2 (r37639) neo"..., 420, 0) = 420
send(4, "<?xml version=\"1.0\" encoding=\"utf-8\"?><propfind xmlns=\"DAV:\"><prop><checked-in xmlns=\"DAV:\"/></prop><"..., 111, 0) = 111
poll([{fd=4, events=POLLIN}], 1, 3600000) = 1 ([{fd=4, revents=POLLIN}])
recv(4, "HTTP/1.1 207 Multi-Status\r\nDate: Tue, 21 Jul 2009 05:13:53 GMT\r\nServer: Apache/2.2.9 (FreeBSD) mod_ss"..., 4096, 0) = 626
send(4, "PROPFIND /repository/!svn/bln/284459 HTTP/1.1\r\nHost: svn.php.net\r\nUser-Agent: SVN/1.6.2 (r37639) neon"..., 419, 0) = 419
send(4, "<?xml version=\"1.0\" encoding=\"utf-8\"?><propfind xmlns=\"DAV:\"><prop><baseline-collection xmlns=\"DAV:\"/"..., 148, 0) = 148
poll([{fd=4, events=POLLIN}], 1, 3600000) = 1 ([{fd=4, revents=POLLIN}])
recv(4, "HTTP/1.1 207 Multi-Status\r\nDate: Tue, 21 Jul 2009 05:13:53 GMT\r\nServer: Apache/2.2.9 (FreeBSD) mod_ss"..., 4096, 0) = 687
send(4, "PROPFIND /repository/php/php-src/branches/PHP_5_3 HTTP/1.1\r\nHost: svn.php.net\r\nUser-Agent: SVN/1.6.2 "..., 432, 0) = 432
send(4, "<?xml version=\"1.0\" encoding=\"utf-8\"?><propfind xmlns=\"DAV:\"><prop><version-controlled-configuration "..., 300, 0) = 300
poll([{fd=4, events=POLLIN}], 1, 3600000) = 1 ([{fd=4, revents=POLLIN}])
recv(4, "HTTP/1.1 207 Multi-Status\r\nDate: Tue, 21 Jul 2009 05:13:53 GMT\r\nServer: Apache/2.2.9 (FreeBSD) mod_ss"..., 4096, 0) = 955
send(4, "PROPFIND /repository/!svn/vcc/default HTTP/1.1\r\nHost: svn.php.net\r\nUser-Agent: SVN/1.6.2 (r37639) neo"..., 435, 0) = 435
send(4, "<?xml version=\"1.0\" encoding=\"utf-8\"?><propfind xmlns=\"DAV:\"><prop><baseline-collection xmlns=\"DAV:\"/"..., 148, 0) = 148
poll([{fd=4, events=POLLIN}], 1, 3600000 <unfinished ...>

the overhead of http:// svndav protocol comparing to svn:// looks really big

Reproduce code:
---------------
fast:
$ svn co ...
$ svn up
$ svn switch http://..


reproducing
$ svn switch http://.. 
# CTRL+C, make sure it break in the middle of update, leaving most file not switched

slow:
# resume the switch, really slow. nothing display until half an hour or so later, it begin switching like normal speed
$ svn switch http://..



Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2009-07-21 05:21 UTC] gwynne@php.net
We're looking into providing svn:// protocol access to the PHP repository, but there's absolutely no ETA on when this might be implemented. I'll update this bug when I know more about when/how it'll take shape.

Please keep in mind that the larger your checkout, the longer some operations will take no matter the protocol.
 [2012-12-23 15:50 UTC] mj@php.net
-Status: Verified +Status: Wont fix
 [2012-12-23 15:50 UTC] mj@php.net
Closing this one because of the migration to Git.
 
PHP Copyright © 2001-2020 The PHP Group
All rights reserved.
Last updated: Sun Jan 19 00:01:24 2020 UTC