You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What did you do?
(Use play.golang.org to provide a runnable example, if possible.)
If I use Dial() on an SSH Client more than once, the second returned net.Conn can not read/write until the first Dial completes. The write's appear to work fine on the returned net.Conn, but aren't actually delivered until the first one is Close()d.
In this code, remoteConn2 will not send bytes until remoteConn is Close()d, and remoteConn2 will not Read() until remoteConn is closed.
What did you expect to see?
I expect every Dial()ed connection to be independent of the others and able to fully multiplex. I don't want to have to wait for previous Dial()ed connections to close.
This greatly hinders throughput.
What did you see instead?
I must Close() previously Dial()ed connections if I want any new ones to work.
The text was updated successfully, but these errors were encountered:
theonewolf
changed the title
x/crypto/ssh: Dialing Twice Hangs Second Connection
x/crypto/ssh: TCP Forwarding Twice Hangs Second Connection
Mar 2, 2016
Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (
go version
)?> go version go version go1.6 linux/amd64
What operating system and processor architecture are you using (
go env
)?Ubuntu 14.04.4 LTS
What did you do?
(Use play.golang.org to provide a runnable example, if possible.)
If I use
Dial()
on an SSH Client more than once, the second returnednet.Conn
can not read/write until the first Dial completes. The write's appear to work fine on the returnednet.Conn
, but aren't actually delivered until the first one isClose()
d.Example:
In this code,
remoteConn2
will not send bytes untilremoteConn
isClose()
d, andremoteConn2
will notRead()
untilremoteConn
is closed.What did you expect to see?
I expect every
Dial()
ed connection to be independent of the others and able to fully multiplex. I don't want to have to wait for previousDial()
ed connections to close.This greatly hinders throughput.
What did you see instead?
I must
Close()
previouslyDial()
ed connections if I want any new ones to work.The text was updated successfully, but these errors were encountered: