mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bill Kuker (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SSHD-85) Port Forward closes connection before all bytes are sent
Date Wed, 21 Jun 2017 11:44:00 GMT

    [ https://issues.apache.org/jira/browse/SSHD-85?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16057359#comment-16057359
] 

Bill Kuker commented on SSHD-85:
--------------------------------

I solemnly swear I am going to kill this bug...

Narrowing down the problem, if I switch to JSCH as the client the Remote port forward tests
continue to fail, but the local port forward all begin to pass.

So the bug seems to be present in apache ssh client and server, at the point where the apache
ssh client or ssh server is talking to the test client, not the test server. I would guess
that if I were to implement another version of the test with the apache ssh client and another
server (I'll look to see if JSCH has one) the remote tests would fail.



> Port Forward closes connection before all bytes are sent
> --------------------------------------------------------
>
>                 Key: SSHD-85
>                 URL: https://issues.apache.org/jira/browse/SSHD-85
>             Project: MINA SSHD
>          Issue Type: Bug
>    Affects Versions: 0.2.0, 1.4.0, 1.6.0
>         Environment: Windows or Linux, JSCH Client
>            Reporter: Bill Kuker
>            Assignee: Guillaume Nodet
>         Attachments: MINA-Port-Forward.txt, SSHD-85_testcase.txt
>
>
> When I am forwarding connections from a Client to a port on the SSH Server through the
SSH Client to a Remote Server on the SSH Client network:
> Client --(a)---> SSH Server <===[ssh]===> SSH Client --(b)--> Remote Server
>  if the Remote Server sends some bytes and immediately closes the connection (b) to the
SSH Client the SSH Server will close the connection (a) to the client before all of those
bytes are sent to the SSH Client.
> This is probably a race condition. If I run one connection at a time it works 99% of
the time, but if I use a load generator (a completely separate process) to max out all 4 cores
I can make it fail (I do not get all the bytes from Remote Server at Client) 99% of the time.
Also by running about 100 simultaneous requests I get maybe a 20% failure rate.
> If the Remote Server is something like Telnet (Open for a while, user closes connection)
everything seems fine, but the the Remote Server is a web server with keep alive disabled,
and many small requests are made, many images, htmls, css are truncated.
> Sorry I can't be more precise with this, but I hope anyone else having a similar trouble
can help fill out this bug with details.
> *Update in 2017*
> I have provided a maven project with a unit test that has a 100% failure rate on my desktop
without resorting to creating artificial load. It is a lot simpler:
> https://github.com/bkuker/sshd-85
> https://github.com/bkuker/sshd-85/blob/master/src/main/java/com/billkuker/sshd/sshd85/TheTest.java



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message