https://bugzilla.mindrot.org/show_bug.cgi?id=3905

Damien Miller <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #2 from Damien Miller <[email protected]> ---
I don't think I'm following this properly because I don't see how the
deadlock occurs.

AFAIK it goes like this:

1. A client sends a bunch of read requests, enough to fill its entire
receive window.

2. The server responds to these read requests and the window fills.

3. As the client receives the responses from the server, it will
enqueue window adjust messages. These will naturally be sent after all
the read requests.

Here's where my understanding of the deadlock breaks down.

AIUI at this point, the server's channel layer has a bunch of queued
data that represents SFTP read requests 

In OpenSSH the channel layer is completely agnostic to the contents of
the queue channel data (for us these aren't just separate layers, but
entirely separate binaries). This data in the channel's receive buffer
does not prevent the handling of window adjust messages; we consider
those not as channel _data_ but separate control messages.

As the window adjusts are processed, the server opens up its send
window again, allowing the sftp layer to go back to reading requests.

Do I misunderstand the setup or are you using a different architecture
that treats window adjust messages as more in-band?

-- 
You are receiving this mail because:
You are watching the assignee of the bug.
You are watching someone on the CC list of the bug.
_______________________________________________
openssh-bugs mailing list
[email protected]
https://lists.mindrot.org/mailman/listinfo/openssh-bugs

Reply via email to