<p>Blocking calls are generally not interuptable on windows. Select, recv, etc.</p>
<p>If paramiko is in the mix, I wonder if it is a small ssh incompatibility. Like not supporting re-keying that we saw in the past. That particular one doesn't fit here, though.</p>
<p>John<br>
=:-></p>
<div class="gmail_quote">On Oct 5, 2011 12:13 AM, "Martin Pool" <<a href="mailto:mbp@canonical.com">mbp@canonical.com</a>> wrote:<br type="attribution">> On 5 October 2011 04:52, Eli Zaretskii <<a href="mailto:eliz@gnu.org">eliz@gnu.org</a>> wrote:<br>
>>> From: Martin Pool <<a href="mailto:mbp@canonical.com">mbp@canonical.com</a>><br>>>> Date: Tue, 4 Oct 2011 12:16:18 +1100<br>>>> Cc: <a href="mailto:bazaar@lists.canonical.com">bazaar@lists.canonical.com</a><br>
>>><br>>>> I don't know, based on that, what it would be, but the general kind of<br>>>> thing I would try to find out next in this type of situation is just<br>>>> what is going on when it is hanging: what is bzr doing, what is the<br>
>>> external ssh transport (if any) doing, and what is the OS tcp socket<br>>>> doing?<br>>><br>>> It looks like bzr is waiting forever in `select'.  Here's the stack of<br>>> one of the two threads shown by Process Explorer:<br>
>><br>>>  ntoskrnl.exe!ExReleaseResourceLite+0x2be<br>>>  ntoskrnl.exe!IoPageRead+0xc50<br>>>  ntoskrnl.exe!IoGetBaseFileSystemDeviceObject+0x730<br>>>  ntoskrnl.exe!NtWaitForSingleObject+0x94<br>
>>  ntoskrnl.exe!KiDeliverApc+0xbbb<br>>>  ntdll.dll!KiFastSystemCallRet<br>>>  MSWSOCK.dll+0x5fa7<br>>>  WS2_32.dll!select+0xa7<br>>>  _socket.pyd!init_socket+0x1c6e<br>>><br>>> I have no idea what that means.  Why would it wait forever? aren't<br>
>> there timeouts? am I looking at some deadlock in the kernel?<br>> <br>> select is used to wait for network io.  When a connection is active we<br>> typically wait forever to be able to read or write.  (Perhaps there<br>
> should be a very long timeout where bzr decides for itself the network<br>> has jammed, but for the moment we rely on the user.)<br>> <br>> So the question then is: which fds is it waiting on (what are the<br>
> arguments to select?) and which sockets do they correspond to, and<br>> what does the OS think the state of those sockets is (which is the<br>> netstat output.)<br>> <br>>>>  * pop into the bzr debugger with ctrl-break and then get a backtrace<br>
>>> (type 'bt')<br>>><br>>> Ctrl-Break doesn't seem to be able to interrupt bzr in this state,<br>>> probably because it is stuck inside a system call.<br>> <br>> That's a little strange, because select is interruptible on unix, but<br>
> perhaps not on Windows.<br>> <br>>>>  * is there a windows equivalent to 'netstat -ponet' that shows the<br>>>> socket state?<br>>><br>>> The socket state is ESTABLISHED, if this is what you wanted to know.<br>
> <br>> OK, but I'd also like to know the length of the rx and tx queues, and<br>> which timer is active if any, and if so what its value and counter is.<br>> <br>> Thanks.<br>> <br>> m<br>> <br>
</div>