subversion-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bert Huijben" <>
Subject RE: svn commit: r1715228 - /subversion/trunk/subversion/libsvn_ra_serf/util.c
Date Thu, 19 Nov 2015 21:03:28 GMT

> -----Original Message-----
> From: []
> Sent: donderdag 19 november 2015 19:03
> To:
> Subject: svn commit: r1715228 -
> /subversion/trunk/subversion/libsvn_ra_serf/util.c
> Author: rhuijben
> Date: Thu Nov 19 18:03:11 2015
> New Revision: 1715228
> URL:
> Log:
> Add a tiny bit of code to allow testing with Apache Serf's http/2 support.
> I committed this patch to celebrate that I got through
> using the current http/2 support.
> * subversion/libsvn_ra_serf/util.c
>   (conn_negotiate_protocol): New function.
>   (conn_setup): Register usage of conn_negotiate_protocol when
>     a very recent (read: trunk) serf + SVN__SERF_TEST_HTTP2 are used.

Currently most tests pass for me over http2 when running with some minor tweaks. I still get
some aborted connections that aren't retried as cleanly as with http 1.1. Not sure what causes
these yet; but this could also be an httpd issues.

The only ra function that really causes problems is the implementation of the replay range
api. This 100% expects that results will be received in the same order in which they are sent.
This is typically the correct way in http 1.1 using serf, but even there it is sometimes possible
to get results out of order. (Authentication can re-queue requests... and sometimes authorization
is necessary even when earlier requests succeeded, depending on the auth scheme).

If you want to try this for yourself, you need http 2.4.17 with mod_http2 (or newer) and OpenSSL
1.0.2 or newer. (If you patch Subversion a bit further you should be able to use h2c, which
avoids the openssl dependency).


View raw message