Re: SVN Property Value Size Limit

2013-06-28 Thread Philip Martin
'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

2013-06-28 Thread Klaus Mueller
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

2013-06-28 Thread Klaus Mueller
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

2013-06-28 Thread Alexey Neyman
[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.