RE: SVN access became slow

2018-06-06 Thread Johannes van der Vegt
I do "Telnet \\server 3690", and I get: 
Connecting To \\server...Could not open connection to the host, on port
3690: Connect failed
I haven't used Telnet before, so maybe I'm doing something wrong?

Running TCPView tool(from SysInternals) shows svnserve.exe with protocol
'TCP' on port 3690, while other ports (other services) do show 'TCPV6'.

I installed SVN 1.10.0 client on the other client PC, and this also gets
slow. Reverting to 1.9.7 solves this again (because it goes straight to
IPv4).
I'm puzzled... Why is 1.10.0 showing this behavior?
Also: Why does SVNServe not provide an IPv6 service on our server PC?

I think for now I will revert back to 1.9.7 on my main PC as well, until I
have a better view of what's going on.


-Original Message-
From: Stefan Sperling [mailto:s...@elego.de] 
Sent: Tuesday 5 June 2018 15:34
To: Johannes van der Vegt 
Cc: users@subversion.apache.org
Subject: Re: SVN access became slow

On Tue, Jun 05, 2018 at 02:54:01PM +0200, Johannes van der Vegt wrote:
> Right... I installed a second service with the '-6' option. This did 
> not make any difference.

Why does this not work? This should work. Can you connect to the SVN service
with telnet to the server's advertised IPv6 address on port 3690? Maybe
svnserve is not listening on the correct
IOPv6 address (see the --listen-host option)?

> Doing more wireshark sniffing:
> - At first, SVN client tries connecting from the local-link IPv6 address.
> There is no response. Two TCP retransmissions fail as well.
> - Second, SVN client tries connecting from the temporary IPv6 address. 
> There is no response. Two TCP retransmissions fail as well.
> - Finally, SVN client falls back to IPv4. This is successful.
> 
> The other client PC (Win10 Home 1803) runs an older SVN client 
> (v1.9.7), and does not try IPv6 first; this one goes straight to IPv4. 
> Running the 'svn info' command from that older version on my own PC 
> also goes straight to IPv4.
> 
> I believe there is no option to force the client to use IPv4?? (except 
> specifically entering the IPv4 IP address) Have I found a bug?

I don't think there is a bug here. SVN will simply try addresses returned by
your client system's DNS resolver in turn. Maybe you could configure your
client system's DNS resolver to prefer IPv4 but that would not be a nice
solution.

If your SVN server has an IPv6 address but does not provide service on that
address, this is expected behaviour. There is no way for the SVN client to
know that it should not be trying this address.

If you do not intend to provide SVN service over IPv6, you could also
disable IPv6 entirely on the SVN server machine.



Re: SVN access became slow

2018-06-06 Thread Stefan Sperling
On Wed, Jun 06, 2018 at 10:08:58AM +0200, Johannes van der Vegt wrote:
> I do "Telnet \\server 3690", and I get: 
> Connecting To \\server...Could not open connection to the host, on port
> 3690: Connect failed
> I haven't used Telnet before, so maybe I'm doing something wrong?
> 
> Running TCPView tool(from SysInternals) shows svnserve.exe with protocol
> 'TCP' on port 3690, while other ports (other services) do show 'TCPV6'.
> 
> I installed SVN 1.10.0 client on the other client PC, and this also gets
> slow. Reverting to 1.9.7 solves this again (because it goes straight to
> IPv4).
> I'm puzzled... Why is 1.10.0 showing this behavior?

If svnserve is indeed not listening on an IPv6 socket even though
the -6 option was provided, then that is unexpected behaviour.

There weren't any changes in svnserve between 1.9 and 1.10 which
could explain this, though, and it works as expected in a quick
test on my system (OpenBSD 6.3) with both SVN 1.10 and SVN 1.9:

$ netstat -an -finet6 | grep 3690
tcp6 0  0  *.3690 *.*LISTEN

If you can confirm that you're indeed seeing unexpected behaviour, then
this behaviour may depend on which version of APR was linked to svnserve
because svnserve is opening sockets via APR. The command 'svn --version -v'
should show the APR version under 'linked dependencies'.

The APR versions used by the SVN builds I've just tested successfully
are, respectively:
 SVN 1.10:  APR 1.5.2 (compiled with 1.5.2)
 SVN 1.9:   APR 1.6.3 (compiled with 1.6.3)

> Also: Why does SVNServe not provide an IPv6 service on our server PC?

As I mentioned before, svnserve does not support both IPv4 and IPv6
at the same time. See https://issues.apache.org/jira/browse/SVN-2382
As documented there I made an attempt to add dual-stack support almost
10 years ago. There is no reason why it couldn't be made to work but
I failed at it back then and gave up on solving this task.

Starting one svnserve process per address family is the best workaround
and I am surprised that it does not work for you :-/


RE: SVN access became slow

2018-06-06 Thread Johannes van der Vegt
The APR version gave me a hint in the right direction.

Client SVN linked dependencies:
  SVN 1.10.0:  - APR 1.6.3 (compiled with 1.6.3)
  SVN 1.9.7:   - APR 1.5.2 (compiled with 1.5.2)
(Did you mix up 1.10 and 1.9 in your list? Because my version numbers are
swapped w.r.t. yours)

On the server:
  SVN 1.10.0:  - APR 1.5.1 (compiled with 1.5.1)
This was a version downloaded from CollabNet.
I installed TortoiseSVN with the command-line-tools on the server. That gave
the following version info:
  SVN 1.10.0-dev:   - APR 1.6.3 (compiled with 1.6.3)

Starting the server:
svnserve -d --listen-port 3690 -6 -r "D:/[RepoPath]"

IT WORKS!!! I now have an ipv6 service running, and accessing it from my
main PC is fast!

But... Can I have two processes (IPv4 and IPv6) running on the same port
together? And will they access the same database on the driver? That may
give trouble if two users connect simultaneously, right?

@Stefan: Thanks for your time in supporting this so far!!.

-Original Message-
From: Stefan Sperling [mailto:s...@elego.de] 
Sent: Wednesday 6 June 2018 11:23
To: Johannes van der Vegt 
Cc: users@subversion.apache.org
Subject: Re: SVN access became slow

On Wed, Jun 06, 2018 at 10:08:58AM +0200, Johannes van der Vegt wrote:
> I do "Telnet \\server 3690", and I get: 
> Connecting To \\server...Could not open connection to the host, on 
> port
> 3690: Connect failed
> I haven't used Telnet before, so maybe I'm doing something wrong?
> 
> Running TCPView tool(from SysInternals) shows svnserve.exe with 
> protocol 'TCP' on port 3690, while other ports (other services) do show
'TCPV6'.
> 
> I installed SVN 1.10.0 client on the other client PC, and this also 
> gets slow. Reverting to 1.9.7 solves this again (because it goes 
> straight to IPv4).
> I'm puzzled... Why is 1.10.0 showing this behavior?

If svnserve is indeed not listening on an IPv6 socket even though the -6
option was provided, then that is unexpected behaviour.

There weren't any changes in svnserve between 1.9 and 1.10 which could
explain this, though, and it works as expected in a quick test on my system
(OpenBSD 6.3) with both SVN 1.10 and SVN 1.9:

$ netstat -an -finet6 | grep 3690
tcp6 0  0  *.3690 *.*LISTEN

If you can confirm that you're indeed seeing unexpected behaviour, then this
behaviour may depend on which version of APR was linked to svnserve because
svnserve is opening sockets via APR. The command 'svn --version -v'
should show the APR version under 'linked dependencies'.

The APR versions used by the SVN builds I've just tested successfully are,
respectively:
 SVN 1.10:  APR 1.5.2 (compiled with 1.5.2)
 SVN 1.9:   APR 1.6.3 (compiled with 1.6.3)

> Also: Why does SVNServe not provide an IPv6 service on our server PC?

As I mentioned before, svnserve does not support both IPv4 and IPv6 at the
same time. See https://issues.apache.org/jira/browse/SVN-2382
As documented there I made an attempt to add dual-stack support almost
10 years ago. There is no reason why it couldn't be made to work but I
failed at it back then and gave up on solving this task.

Starting one svnserve process per address family is the best workaround and
I am surprised that it does not work for you :-/



Re: SVN access became slow

2018-06-06 Thread Stefan Sperling
On Wed, Jun 06, 2018 at 12:37:53PM +0200, Johannes van der Vegt wrote:
> The APR version gave me a hint in the right direction.
> 
> Client SVN linked dependencies:
>   SVN 1.10.0:  - APR 1.6.3 (compiled with 1.6.3)
>   SVN 1.9.7:   - APR 1.5.2 (compiled with 1.5.2)
> (Did you mix up 1.10 and 1.9 in your list? Because my version numbers are
> swapped w.r.t. yours)

The 1.9 binaries I used were not compiled by me and do
indeed use a newer APR version. My 1.10 build is a custom
build which happens to use an older APR version.

> On the server:
>   SVN 1.10.0:  - APR 1.5.1 (compiled with 1.5.1)
> This was a version downloaded from CollabNet.
> I installed TortoiseSVN with the command-line-tools on the server. That gave
> the following version info:
>   SVN 1.10.0-dev:   - APR 1.6.3 (compiled with 1.6.3)
> 
> Starting the server:
> svnserve -d --listen-port 3690 -6 -r "D:/[RepoPath]"
> 
> IT WORKS!!! I now have an ipv6 service running, and accessing it from my
> main PC is fast!

OK, great.

> But... Can I have two processes (IPv4 and IPv6) running on the same port
> together? And will they access the same database on the driver? That may
> give trouble if two users connect simultaneously, right?

No, that is not a problem. Writes to the same repository from
different processes are always serialized properly. 
It's the same situation as if you were running a multi-process
or multi-threaded SVN server, as is the case when Apache HTTPD
is used with mod_dav_svn, or when multiple users commit at the
same time via svn+ssh://. Running two svnserve in parallel is
not an exceptional situation because it can happen at any time
when svn+ssh:// repository access is used. With svn+ssh:// each
client access spawns a new and separate svnserve process.


FINAL REMINDER: Apache EU Roadshow 2018 in Berlin next week!

2018-06-06 Thread sharan

Hello Apache Supporters and Enthusiasts

This is a final reminder that our Apache EU Roadshow will be held in 
Berlin next week on 13th and 14th June 2018. We will have 28 different 
sessions running over 2 days that cover some great topics. So if you are 
interested in Microservices, Internet of Things (IoT), Cloud, Apache 
Tomcat or Apache Http Server then we have something for you.


https://foss-backstage.de/sessions/apache-roadshow

We will be co-located with FOSS Backstage, so if you are interested in 
topics such as incubator, the Apache Way, open source governance, legal, 
trademarks or simply open source communities then there will be 
something there for you too.  You can attend any of talks, presentations 
and workshops from the Apache EU Roadshow or FOSS Backstage.


You can find details of the combined Apache EU Roadshow and FOSS 
Backstage conference schedule below:


https://foss-backstage.de/schedule?day=2018-06-13

Ticket prices go up on 8th June 2018 and we have a last minute discount 
code that anyone can use before the deadline:


15% discount code: ASF15_discount
valid until June 7, 23:55 CET

You can register at the following link:

https://foss-backstage.de/tickets

Our Apache booth and lounge will be open from 11th - 14th June for 
meetups, hacking or to simply relax between sessions. And we will be 
posting regular updates on social media throughout next week so please 
follow us on Twitter @ApacheCon


Thank you for your continued support and we look forward to seeing you 
in Berlin!


Thanks
Sharan Foga, VP Apache Community Development

http://apachecon.com/

PLEASE NOTE: You are receiving this message because you are subscribed 
to a user@ or dev@ list of one or more Apache Software Foundation projects.





Problem with svndumpfilter

2018-06-06 Thread Alfred von Campe
I’m trying to remove two sensitive directories from a repo so we can have a 3rd 
party work on it.  I first dumped the entire repo, and now I’m trying to remove 
two directories from one particular branch.  But svndumpfilter keeps failing as 
follows:

$ svndumpfilter exclude branches/develop/dir1 branches/develop/dir2  < 
repo.dump > repo-nodir12.dump
svndumpfilter: E23: Invalid copy source path '/branches/develop/dir2'

I’ve tried this both from a full incremental dump of the repo as well as a 
non-incremental dump of the repo starting from the revision that 
branches/develop was created.  It always fails after the exact same revision.

Is there anything I can do to work around this issue?

Alfred



Re: SVN access became slow

2018-06-06 Thread Daniel Shahaf
Stefan Sperling wrote on Wed, 06 Jun 2018 15:18 +0200:
> On Wed, Jun 06, 2018 at 12:37:53PM +0200, Johannes van der Vegt wrote:
> > But... Can I have two processes (IPv4 and IPv6) running on the same port
> > together? And will they access the same database on the driver? That may
> > give trouble if two users connect simultaneously, right?
> 
> No, that is not a problem. Writes to the same repository from
> different processes are always serialized properly. 
> [...]

As Stefan said, having multiple, concurrent readers and writers is 100% 
supported.

At the network level there is no problem either.  The IPv4 and IPv6
stacks are independent; the TCP/IPv4 and TCP/IPv6 sockets happen to use
the same port number, but that's not a problem in any way; it's exactly like
running two TCP/IPv4 listening sockets on different port numbers.