[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

RE: SVN Property Value Size Limit

From: Klaus Mueller <k.mueller_at_intershop.de>
Date: Fri, 28 Jun 2013 09:27:40 +0000

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):
[<?xml version="1.0" encoding="utf-8"?>
<S:update-report xmlns:S="svn:" xmlns:V="http://subversion.tigris.org/xmlns/dav/" xmlns:D="DAV:" send-all="true">
<S:target-revision rev="146436"/>
<S:open-directory rev="146436">
<D:checked-in><D:href>/svneng/...</D:href></D:checked-in>
<S:set-prop name="svn:entry:committed-rev">145369</S:set-prop>
<S:set-prop name="svn:entry:committed-date">2013-06-21T09:00:08.455433Z</S:set-prop>
<S:set-prop name="svn:entry:last-author">dpal</S:set-prop>
<S:set-prop name="svn:entry:uuid">9fc60da8-8e6f-4eb0-9785-188b2ab5bd3a</S:set-prop>
<S:set-prop name="svn:ignore">.classpath
</S:set-prop>
<S:set-prop name="svn:mergeinfo">]
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):
[</S:set-prop>
<S:prop></S:prop>
</S:open-directory>
</S:update-report>
]
[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):
[<?xml version="1.0" encoding="utf-8"?><propfind xmlns="DAV:"><allprop/></propfind>]
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):
[<?xml version="1.0" encoding="utf-8"?>
<D:multistatus xmlns:D="DAV:" xmlns:ns0="DAV:">
<D:response xmlns:S="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/">
<D:href>/svneng/esuite/!svn/bc/146436/.../</D:href>
<D:propstat>
<D:prop>
<S:ignore>.classpath
</S:ignore>
<S:mergeinfo>]
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):
[</S:mergeinfo>
<lp1:resourcetype><D:collection/></lp1:resourcetype>
<lp1:getcontenttype>text/html; charset=UTF-8</lp1:getcontenttype>
<lp1:getetag>W/"145369//..."</lp1:getetag>
<lp1:creationdate>2013-06-21T09:00:08.455433Z</lp1:creationdate>
<lp1:getlastmodified>Fri, 21 Jun 2013 09:00:08 GMT</lp1:getlastmodified>
<lp1:checked-in><D:href>/svneng/esuite/!svn/ver/145369/...</D:href></lp1:checked-in>
<lp1:version-controlled-configuration><D:href>/svneng/esuite/!svn/vcc/default</D:href></lp1:version-controlled-configuration>
<lp1:version-name>145369</lp1:version-name>
<lp1:creator-displayname>dpal</lp1:creator-displayname>
<lp1:auto-version>DAV:checkout-checkin</lp1:auto-version>
<lp3:baseline-relative-path>...</lp3:baseline-relative-path>
<lp3:repository-uuid>9fc60da8-8e6f-4eb0-9785-188b2ab5bd3a</lp3:repository-uuid>
<lp3:deadprop-count>2</lp3:deadprop-count>
<D:lockdiscovery/>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
</D:multistatus>
]
[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.martin_at_wandisco.com]
> Sent: Friday, June 28, 2013 11:23 AM
> To: 'Daniel Shahaf'
> Cc: Matthias Legeler; users_at_subversion.apache.org
> Subject: Re: SVN Property Value Size Limit
>
> 'Daniel Shahaf' <danielsh_at_elego.de> writes:
>
> > Matthias Legeler wrote on Thu, Jun 27, 2013 at 10:30:32 +0000:
> >> '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
Received on 2013-06-28 11:29:21 CEST

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.