[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 12:52:32 +0000

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.mueller_at_intershop.de]
> Sent: Friday, June 28, 2013 11:28 AM
> To: Philip Martin; 'Daniel Shahaf'
> Cc: Matthias Legeler; users_at_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):
> [<?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:ver
> sion-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 14:54:19 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.