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
When using DynamoDB as the backend, changing the size of a terminal window (on Linux) quickly will cause the terminal size to go out of sync. Resizing it by one row or line will correct the size.
This is because every row/line change causes a "window-change" request to be issued to Teleport. Teleport keeps track of all active sessions with the party members and terminal size. When using DynamoDB not only does every window change need to be propagated to DynamoDB due to read consistency issues, the size of the PTY can go out of sync.
Solution
This problem needs to be solved in different ways for regular Teleport and the recording proxy.
Regular Teleport
For regular Teleport, the reason the backend keeps track of the window size is for session sharing because if another member of the party resizes their PTY (which resizes the remote PTY) this needs to be reflected in the terminal size of all the other members of the party.
For window size the node has a consistent view of what size was requested of it. Instead of storing the window size upon each change in the backend, the sever can push the window size back to the other members of the party. This can be done with a special x-teleport-window-change global request from the server to the client using the already existing connection.
Recording Proxy
Because session sharing is always disabled for the recording proxy, the PTY size never needs to be propagated back to the client because the client is the only one that can change the size of the remote PTY.
The text was updated successfully, but these errors were encountered:
Problem
When using DynamoDB as the backend, changing the size of a terminal window (on Linux) quickly will cause the terminal size to go out of sync. Resizing it by one row or line will correct the size.
This is because every row/line change causes a "window-change" request to be issued to Teleport. Teleport keeps track of all active sessions with the party members and terminal size. When using DynamoDB not only does every window change need to be propagated to DynamoDB due to read consistency issues, the size of the PTY can go out of sync.
Solution
This problem needs to be solved in different ways for regular Teleport and the recording proxy.
Regular Teleport
For regular Teleport, the reason the backend keeps track of the window size is for session sharing because if another member of the party resizes their PTY (which resizes the remote PTY) this needs to be reflected in the terminal size of all the other members of the party.
For window size the node has a consistent view of what size was requested of it. Instead of storing the window size upon each change in the backend, the sever can push the window size back to the other members of the party. This can be done with a special
x-teleport-window-change
global request from the server to the client using the already existing connection.Recording Proxy
Because session sharing is always disabled for the recording proxy, the PTY size never needs to be propagated back to the client because the client is the only one that can change the size of the remote PTY.
The text was updated successfully, but these errors were encountered: