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
{{ message }}
Repository navigation
Status callback for exec is never called when stdin closes #465
changed the title [-]Status callback never called when stdin closes[/-][+]Status callback for exec is never called when stdin closes[/+]on Jun 13, 2020
@brendandburns you are correct it will be related to tty itself, but the fact with result is as kubectl exec is not behaving like that when stdin is closed. I was digging into kubectl exec and I figured out it's using SPDY and multiple streams for different io instead of single websocket connection.
I think issue could be solved with #411 or maybe there is way for ws protocol to close streams some other way.
I'm obviously not certain, but I think tar is giving up before stdin is even considered. I'm uncertain about the difference between tar xf - ... vs tar -x -f - but you may be since that is referenced in the error message.
It does not matter what executable I try to run, even cat breaks up in similiar manner as if you try to paste binary data trough regular terminal. I believe I would have to somehow escape the data so the terminal could recognize 0x04 as a byte and as a ctrl-d. I am not sure if thats possible (I was not able to find anything about that), but could also solve the issue.
Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale
Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten
Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
Activity
[-]Status callback never called when stdin closes[/-][+]Status callback for exec is never called when stdin closes[/+]brendandburns commentedon Jun 13, 2020
You could try sending an explicit
control-Dcharacter across the stream. That should close the stream in the application.mochja commentedon Jun 14, 2020
@brendandburns neat, that does work indeed, but only when tty is also attached.
With tty I am not able to correctly receive binary data for exec command.
brendandburns commentedon Jun 17, 2020
Makes sense ctrl-d is a terminal character after all.
This error is coming from the tar command itself. I'm not sure why that's happening, but I don't think it's related to this library.
mochja commentedon Jun 17, 2020
@brendandburns you are correct it will be related to tty itself, but the fact with result is as
kubectl execis not behaving like that when stdin is closed. I was digging intokubectl execand I figured out it's using SPDY and multiple streams for different io instead of single websocket connection.I think issue could be solved with #411 or maybe there is way for ws protocol to close streams some other way.
kubernetes/kubernetes#89899
brendandburns commentedon Jun 19, 2020
I'm obviously not certain, but I think
taris giving up before stdin is even considered. I'm uncertain about the difference betweentar xf - ...vstar -x -f -but you may be since that is referenced in the error message.mochja commentedon Jun 19, 2020
It does not matter what executable I try to run, even cat breaks up in similiar manner as if you try to paste binary data trough regular terminal. I believe I would have to somehow escape the data so the terminal could recognize 0x04 as a byte and as a ctrl-d. I am not sure if thats possible (I was not able to find anything about that), but could also solve the issue.
bankyadam commentedon Aug 6, 2020
Did you find out something @mochja? I'm trying to upload some file with
execto a pod and I experience the same you do.mochja commentedon Aug 6, 2020
@bankyadam I did not, I think there are only two proper ways to handle this:
I was experimenting by removing following lines
javascript/src/web-socket-handler.ts
Lines 68 to 70 in 932c2fb
and if I am remembering correctly it was somewhat working.
fejta-bot commentedon Nov 4, 2020
Issues go stale after 90d of inactivity.
Mark the issue as fresh with
/remove-lifecycle stale.Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with
/close.Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale
fejta-bot commentedon Dec 4, 2020
Stale issues rot after 30d of inactivity.
Mark the issue as fresh with
/remove-lifecycle rotten.Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with
/close.Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten
fejta-bot commentedon Jan 3, 2021
Rotten issues close after 30d of inactivity.
Reopen the issue with
/reopen.Mark the issue as fresh with
/remove-lifecycle rotten.Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close
k8s-ci-robot commentedon Jan 3, 2021
@fejta-bot: Closing this issue.
Details
In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.