Skip to content

Commit d6404c8

Browse files
nic-6443k8s-publishing-bot
authored andcommitted
fix: draining remote stream after port-forward connection broken
Signed-off-by: Nic <[email protected]> Kubernetes-commit: dbe6b6657bacc846656f4009ee869ca996dde1da
1 parent 2d3b1e2 commit d6404c8

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

tools/portforward/portforward.go

+5
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,11 @@ func (pf *PortForwarder) handleConnection(conn net.Conn, port ForwardedPort) {
406406
case <-remoteDone:
407407
case <-localError:
408408
}
409+
/*
410+
reset dataStream to discard any unsent data, preventing port forwarding from being blocked.
411+
we must reset dataStream before waiting on errorChan, otherwise, the blocking data will affect errorStream and cause <-errorChan to block indefinitely.
412+
*/
413+
_ = dataStream.Reset()
409414

410415
// always expect something on errorChan (it may be nil)
411416
err = <-errorChan

0 commit comments

Comments
 (0)