• Andy Goldstein's avatar
    Various exec fixes · c8378697
    Andy Goldstein authored
    If stdin is noninteractive, the io.Copy from stdin to remoteStdin will
    unblock when it finishes reading from stdin. In this case, make sure to
    close remoteStdin so the server knows the client won't be sending any
    more data. This ensures that the remote process terminates. For example:
    
    echo foo | kubectl exec -i <pod> -- cat
    
    Without this change, the `cat` process never terminates and `kubectl
    exec` hangs.
    
    Fix interactive exec sessions hanging after you type 'exit'.
    
    Add e2e test to cover noninteractive stdin: `echo a | kubectl exec -i <pod>
    cat`
    
    Add e2e test to cover psuedo-interactive stdin: `kubectl exec -i <pod> bash`
    
    Prep for sending multiple data frames over multiple streams in remote command
    test, which is more likely to find flakes (requires bump of spdystream
    once an issue with the frame worker queues not being fully drained when
    a goaway frame is received).
    c8378697
Name
Last commit
Last update
..
connection.go Loading commit data...
roundtripper.go Loading commit data...
roundtripper_test.go Loading commit data...
upgrade.go Loading commit data...
upgrade_test.go Loading commit data...