Re: SVN Property Value Size Limit
'Daniel Shahaf' writes: > Matthias Legeler wrote on Thu, Jun 27, 2013 at 10:30:32 +: >> 'svn propget --strict svn:mergeinfo ./ ' gets the first 7895 characters >> 'svn propget --strict svn:mergeinfo URL' gets all 7959 characters >> >> yes, 64 characters difference The Subversion project has svn:mergeinfo of about that size: 5915 bytes on trunk, 7892 bytes on 1.8.x, 13838 bytes on 1.7.x. > Interesting, thanks. > > I guess the next step is to look at the response headers. (You can use > neon-debug-mask if you use neon, or wireshark/tcpdump if you don't use > SSL.) In particular, whether the response includes the whole property, > and whether metadata (eg: Content-Length response header) matches the > response. http://subversion.apache.org/docs/community-guide/debugging.html#net-trace I'd suggest tracing the traffic for an empty checkout: svn co --depth empty URL That will reduce the traffic but still include the property. The property value is tranferred as XML in the body of the response for the final REPORT request. -- Philip Martin | Subversion Committer WANdisco | Non-Stop Data www.wandisco.com
RE: SVN Property Value Size Limit
Hi, I prepared a trace of the relevant part. Compared transfer debug output for an element. Both version generated with neon-debug-mask=130. Subversion version is "Version 1.6.12" on a Debian 6 system. 1.Checkout of element - This is the version with the problem. Call: svn co --depth empty https://URL core --username ... Debug output shortend: [status-line] < HTTP/1.1 200 OK^M [hdr] Date: Fri, 28 Jun 2013 09:00:15 GMT^M Header Name: [date], Value: [Fri, 28 Jun 2013 09:00:15 GMT] [hdr] Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8k DAV/2 SVN/1.6.9 mod_perl/2.0.4 Perl/v5.10.0^M Header Name: [server], Value: [Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8k DAV/2 SVN/1.6.9 mod_perl/2.0.4 Perl/v5.10.0] [hdr] Transfer-Encoding: chunked^M Header Name: [transfer-encoding], Value: [chunked] [hdr] Content-Type: text/xml; charset="utf-8"^M Header Name: [content-type], Value: [text/xml; charset="utf-8"] [hdr] ^M End of headers. Running post_headers hooks [chunk] < 21b7^M Got chunk size: 8631 Reading 8192 bytes of response body. Got 727 bytes. Read block (727 bytes): [ http://subversion.tigris.org/xmlns/dav/"; xmlns:D="DAV:" send-all="true"> /svneng/... 145369 2013-06-21T09:00:08.455433Z dpal 9fc60da8-8e6f-4eb0-9785-188b2ab5bd3a .classpath ] Reading 7904 bytes of response body. Got 7904 bytes. Read block (7904 bytes): [/ ... .../branches/e] [chunk] < 47^M Got chunk size: 71 Reading 71 bytes of response body. Got 71 bytes. Read block (71 bytes): [ ] [chunk] < 0^M Got chunk size: 0 [hdr] ^M End of headers. Running post_send hooks Request ends, status 200 class 2xx, error line: 200 OK Running destroy hooks. Request ends. sess: Destroying session. sess: Destroying session. This is the truncated version of the property. 2. PROPGET svn:mergeinfo This is the working version of the requests. Call: svn propget svn:mergeinfo https://URL --username ... Debug output shortend: ^M Sending request-line and headers: Sending request body: Body block (82 bytes): [] Request sent; retry is 1. [status-line] < HTTP/1.1 207 Multi-Status^M [hdr] Date: Fri, 28 Jun 2013 08:59:08 GMT^M Header Name: [date], Value: [Fri, 28 Jun 2013 08:59:08 GMT] [hdr] Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8k DAV/2 SVN/1.6.9 mod_perl/2.0.4 Perl/v5.10.0^M Header Name: [server], Value: [Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8k DAV/2 SVN/1.6.9 mod_perl/2.0.4 Perl/v5.10.0] [hdr] Transfer-Encoding: chunked^M Header Name: [transfer-encoding], Value: [chunked] [hdr] Content-Type: text/xml; charset="utf-8"^M Header Name: [content-type], Value: [text/xml; charset="utf-8"] [hdr] ^M End of headers. Running post_headers hooks [chunk] < 2153^M Got chunk size: 8531 Reading 8192 bytes of response body. Got 531 bytes. Read block (531 bytes): [ http://subversion.tigris.org/xmlns/svn/"; xmlns:C="http://subversion.tigris.org/xmlns/custom/"; xmlns:V="http://subversion.tigris.org/xmlns/dav/"; xmlns:lp1="DAV:" xmlns:lp3="http://subversion.tigris.org/xmlns/dav/"; xmlns:lp2="http://apache.org/dav/props/";> /svneng/esuite/!svn/bc/146436/.../ .classpath ] Reading 8000 bytes of response body. Got 8000 bytes. Read block (8000 bytes): [/... ... ...:71506] [chunk] < 463^M Got chunk size: 1123 Reading 1123 bytes of response body. Got 1123 bytes. Read block (1123 bytes): [ text/html; charset=UTF-8 W/"145369//..." 2013-06-21T09:00:08.455433Z Fri, 21 Jun 2013 09:00:08 GMT /svneng/esuite/!svn/ver/145369/... /svneng/esuite/!svn/vcc/default 145369 dpal DAV:checkout-checkin ... 9fc60da8-8e6f-4eb0-9785-188b2ab5bd3a 2 HTTP/1.1 200 OK ] [chunk] < 0^M Got chunk size: 0 [hdr] ^M End of headers. Running post_send hooks Request ends, status 207 class 2xx, error line: 207 Multi-Status Running destroy hooks. Request ends. sess: Destroying session. sess: Destroying session. It seems the server is truncating the output before send the response from my point of view. Klaus > -Original Message- > From: Philip Martin [mailto:philip.mar...@wandisco.com] > Sent: Friday, June 28, 2013 11:23 AM > To: 'Daniel Shahaf' > Cc: Matthias Legeler; users@subversion.apache.org > Subject: Re: SVN Property Value Size Limit > > 'Daniel Shahaf' writes: > > > Matthias Legeler wrote on Thu, Jun 27, 2013 at 10:30:32 +: > >> 'svn propget --strict svn:mergeinfo ./ ' gets the first 7895 > characters > >> 'svn propget --strict svn:mergeinfo URL' gets all 7959 characters > >> > >> yes, 64 characters difference > > The Subversion project has svn:mergeinfo of about that size: 5915 bytes > on trunk, 7892 bytes on 1.8.x, 13838 bytes on 1.7.x. > > > Interesting, thanks. > > > > I guess the next step is to look at the response headers. (You can > use > > neon-debug-mask if you use neon, or wireshark/tcpdump if you don't > use > > SSL.) In particular, whether the response includes the whole > property, > > and whether metadata (eg: Content-Length response header) matches the > > r
RE: SVN Property Value Size Limit
An updated client generates the same output. User-Agent: SVN/1.7.9 neon/0.29.6 I do not know how to generatet he output with a subversion 1.8.0 client as neon is replaced by serf. Klaus > -Original Message- > From: Klaus Mueller [mailto:k.muel...@intershop.de] > Sent: Friday, June 28, 2013 11:28 AM > To: Philip Martin; 'Daniel Shahaf' > Cc: Matthias Legeler; users@subversion.apache.org > Subject: RE: SVN Property Value Size Limit > > Hi, > > I prepared a trace of the relevant part. > > Compared transfer debug output for an element. > > Both version generated with neon-debug-mask=130. Subversion version is > "Version 1.6.12" on a Debian 6 system. > > > 1.Checkout of element > - > > This is the version with the problem. > > Call: svn co --depth empty https://URL core --username ... > > Debug output shortend: > > [status-line] < HTTP/1.1 200 OK^M > [hdr] Date: Fri, 28 Jun 2013 09:00:15 GMT^M > Header Name: [date], Value: [Fri, 28 Jun 2013 09:00:15 GMT] > [hdr] Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8k DAV/2 > SVN/1.6.9 mod_perl/2.0.4 Perl/v5.10.0^M > Header Name: [server], Value: [Apache/2.2.11 (Unix) mod_ssl/2.2.11 > OpenSSL/0.9.8k DAV/2 SVN/1.6.9 mod_perl/2.0.4 Perl/v5.10.0] > [hdr] Transfer-Encoding: chunked^M > Header Name: [transfer-encoding], Value: [chunked] > [hdr] Content-Type: text/xml; charset="utf-8"^M > Header Name: [content-type], Value: [text/xml; charset="utf-8"] > [hdr] ^M > End of headers. > Running post_headers hooks > [chunk] < 21b7^M > Got chunk size: 8631 > Reading 8192 bytes of response body. > Got 727 bytes. > Read block (727 bytes): > [ > xmlns:V="http://subversion.tigris.org/xmlns/dav/"; xmlns:D="DAV:" send- > all="true"> > > > /svneng/... > 145369 > 2013-06- > 21T09:00:08.455433Z > dpal > 9fc60da8-8e6f-4eb0-9785- > 188b2ab5bd3a > .classpath > > ] > Reading 7904 bytes of response body. > Got 7904 bytes. > Read block (7904 bytes): > [/ > ... > .../branches/e] > [chunk] < 47^M > Got chunk size: 71 > Reading 71 bytes of response body. > Got 71 bytes. > Read block (71 bytes): > [ > > > > ] > [chunk] < 0^M > Got chunk size: 0 > [hdr] ^M > End of headers. > Running post_send hooks > Request ends, status 200 class 2xx, error line: > 200 OK > Running destroy hooks. > Request ends. > sess: Destroying session. > sess: Destroying session. > > > This is the truncated version of the property. > > 2. PROPGET svn:mergeinfo > > > This is the working version of the requests. > > Call: svn propget svn:mergeinfo https://URL --username ... > > Debug output shortend: > > ^M > Sending request-line and headers: > Sending request body: > Body block (82 bytes): > [ xmlns="DAV:">] > Request sent; retry is 1. > [status-line] < HTTP/1.1 207 Multi-Status^M > [hdr] Date: Fri, 28 Jun 2013 08:59:08 GMT^M > Header Name: [date], Value: [Fri, 28 Jun 2013 08:59:08 GMT] > [hdr] Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8k DAV/2 > SVN/1.6.9 mod_perl/2.0.4 Perl/v5.10.0^M > Header Name: [server], Value: [Apache/2.2.11 (Unix) mod_ssl/2.2.11 > OpenSSL/0.9.8k DAV/2 SVN/1.6.9 mod_perl/2.0.4 Perl/v5.10.0] > [hdr] Transfer-Encoding: chunked^M > Header Name: [transfer-encoding], Value: [chunked] > [hdr] Content-Type: text/xml; charset="utf-8"^M > Header Name: [content-type], Value: [text/xml; charset="utf-8"] > [hdr] ^M > End of headers. > Running post_headers hooks > [chunk] < 2153^M > Got chunk size: 8531 > Reading 8192 bytes of response body. > Got 531 bytes. > Read block (531 bytes): > [ > > http://subversion.tigris.org/xmlns/svn/"; > xmlns:C="http://subversion.tigris.org/xmlns/custom/"; > xmlns:V="http://subversion.tigris.org/xmlns/dav/"; xmlns:lp1="DAV:" > xmlns:lp3="http://subversion.tigris.org/xmlns/dav/"; > xmlns:lp2="http://apache.org/dav/props/";> > /svneng/esuite/!svn/bc/146436/.../ > > > .classpath > > ] > Reading 8000 bytes of response body. > Got 8000 bytes. > Read block (8000 bytes): > [/... > ... > ...:71506] > [chunk] < 463^M > Got chunk size: 1123 > Reading 1123 bytes of response body. > Got 1123 bytes. > Read block (1123 bytes): > [ > > text/html; charset=UTF-8 > W/"145369//..." > 2013-06-21T09:00:08.455433Z > Fri, 21 Jun 2013 09:00:08 > GMT > in>/svneng/esuite/!svn/ver/145369/... > configuration>/svneng/esuite/!svn/vcc/default sion-controlled-configuration> > 145369 > dpal > DAV:checkout-checkin > ... > 9fc60da8-8e6f-4eb0-9785- > 188b2ab5bd3a > 2 > > > HTTP/1.1 200 OK > > > > ] > [chunk] < 0^M > Got chunk size: 0 > [hdr] ^M > End of headers. > Running post_send hooks > Request ends, status 207 class 2xx, error line: > 207 Multi-Status > Running destroy hooks. > Request ends. > sess: Destroying session. > sess: Destroying session. > > > It seems the server is truncating the output before send the response > from my point of view. > > Klaus > > > -Original Message- > > From: Philip Martin [mailto:philip.mar...@wandisco.com] > > Sent: Friday, June 28, 2013 11:23 AM > > To: '
Re: Merge error with SVN 1.8.0
[copying dev@ because I found what the issue is] Hi, Did some further investigation and it turns out that SVN1.8 client creates more connections to the server when performing 'svn merge' - exceeding the xinetd's default number of connections per source (10) and indeed, closing the connection on an unsuspecting client. After increasing the number of connections per source to unlimited, the merge went through. Here are some statistics: SVN 1.7, merge --reintegrate 13 connections total, 5 concurrent connections maximum SVN 1.8, merge 18 connections total, 11 concurrent connections maximum SVN 1.8, merge --reintegrate 5 connections total, 3 concurrent connections maximum So, it looks like the new code for automatic detection of "reintegration merges" in 1.8 spawns a bunch of additional connections. So, the question is - what is the maximum number of connections that a client can create to a server? Does it depend on the size of the change? Size of the svn:mergeinfo? I am not comfortable leaving the server configuration at "unlimited", seeing that xinetd limit is a safety net against runaway client bringing down the server. Regards, Alexey. On Sunday, June 23, 2013 12:56:27 PM Alexey Neyman wrote: Hi, I've tried upgrading the client to SVN 1.8, and now see some strange merge errors while reintegrating the branch. According to http://subversion.apache.org/docs/release-notes/1.8.html#auto-reintegrate the --reintegrate option is now deprecated, its use is discouraged and SVN should be able to figure that out automatically. However, when I tried a plain "svn merge", it gave me the following error: [aneyman@build2 trunk]$ svn merge ^/MERGE-PATH svn: E210002: Unable to connect to a repository at URL 'svn://MERGE-URL' svn: E210002: Network connection closed unexpectedly Strangely, 'svn merge --reintegrate' worked fine. We are running 1.6.11 on the server (stock RedHat RPM, "1.6.11-2.el6_1.4" version). I installed SVN 1.8.0 RPM from WanDisco ("1.8.0-1") on the client. Any clues/suggestions as to how to debug this further? Regards, Alexey.