#48995 [Asn->Ver]: resuming svn switch is too slow
| From: | gwynne@php.net | Date: | Mon, 05 Oct 2009 10:36:23 +0000 |
| Subject: | #48995 [Asn->Ver]: resuming svn switch is too slow | ||
| References: | 1 | Groups: | php.webmaster |
| Request: | Send a blank email to php-webmaster+get-6056@lists.php.net to get a copy of this message | ||
ID: 48995
Updated by: gwynne@php.net
Reported By: xuefer at gmail dot com
-Status: Assigned
+Status: Verified
Bug Type: Website problem
Operating System: Any
PHP Version: Irrelevant
Assigned To: gwynne
Previous Comments:
------------------------------------------------------------------------
[2009-07-21 05:21:25] 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.
------------------------------------------------------------------------
[2009-07-21 05:16:26] 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://..
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=48995&edit=1