RE: Re: Issue #2580 revisited: Windows unclean TCP close [SEVERE]
From: Bob Denny <rdenny_at_dc3.com>
Date: Fri, 23 Oct 2009 19:59:23 -0700 (PDT)
I just found this up in the thread tree, and I apologize for not replying sooner. This discussion thread has become confusing. I wonder if you read my replies to Paul, in which I lay it all out in clear terms. But let me respond to your response to Paul:
> The problem is:
Not on windows. There is no ssh connection pooling. There is nothing complicated. The tunnel is a simple subprocess. There is no fork/exec on Windows.
> By the way, Bob, maybe you are running a version of sshd affected by that
I don't know. The sshd is on a remote service (A2 Hosting). And I don't care, because the problem is the harsh killing of the local/client tunnel agent (e.g. PLink). That's what starts it all.
Did you read this:
If you instantly kill the tunnel agent, EVERYTHING runs through error paths, and depending on timing (client CPU and network latency) the remote sshd and its svnserve child can be left hanging.
I'm reaching the end of my limits trying to explain a problem from the standpoint of a Windows developer to this group who are clearly rooted in the Linux world. I have nothing against Linux, I run several flavors here and do some development on it as well as supporting some astronomy customers who use it. If you go back and read my posts, you should understand what is going on. It is not my opinion, I only started out here with facts (see my first post for an example).
I can see absolutely no reason to "terminate the tunnel agent" on Windows. At least not the tunnel agents PLink.exe, TortoisePLink.exe, and an ssh.exe I got from "somehwere". All exit gracefully when used (at least) from svn.exe, from TortoiseSVN, from SVN for Dreamweaver (DW GUI plugin), and from VisualSVN (a Visual Studio GUI plugin). Furthermore, they run as children of the SVN program or GUI plugin anyway, and if that exits, Windows takes out all children.
We can argue about theory, but nowhere do I see the need to forcibly/instantly terminate the tunnel on Windows. And if we DO terminate it, a chain of events takes place that I have amply explained in other messages here, all of which are ugly error paths. As it is now, subversion 1.6.6 is unusable by me. My patched version is running nicely, no problems with my tunnels.
With this message I've risked being annoying or worse, so I'm going to leave this issue for you all to do whatever you decide. I want to thank you all for subversion, it is a fantastic tool. I'm sorry I couldn't contribute in my small way from my small corner of the world.
This is an archived mail posted to the Subversion Dev mailing list.