Opened 11 months ago

Closed 10 months ago

Last modified 10 months ago

#18488 closed bug (fixed)

timed out ssh sessions interfere with newly created ssh sessions

Reported by: hoanga Owned by: nobody
Priority: low Milestone: Unscheduled
Component: Drivers/TTY Version: R1/beta4
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

i have been noticing this phenomenon for some time after beta4 was released (last observed on hrev57117 but even before version).

if you keep a long running ssh session that eventually times out and disconnects. if you establish a new ssh session to the same haiku host, it appears that the 'old' ssh session also sometimes returns data on the new established ssh session. a workaround when this happens is to send EOF (Ctrl-D) multiple times to log out of the new ssh session and then log back in under yet another ssh session and this appears to clear up the old disconnected connection from interfering with new sessions.

not sure what would be helpful to capture when this happens, but i consider the workaround sufficient for when this situation happens.

Change History (9)

comment:1 by waddlesplash, 11 months ago

Not sure I quite understand here. You mean that sometimes command output from the "old" session will show up on the new one?

comment:2 by hoanga, 11 months ago

pardon if i my explanation wasn't very clear. when this situation occurs, what appears to be happening is that the input and output from the "old" session gets multiplexed/mixed onto the "new" session. so, yes the command output from the "old" session when this situation happens will show up on the new one.

it almost seems like the stdin, stdout (and maybe stderr) from the "old" session somehow gets mixed in with the "new" session. so when entering input into the "new" session, some of the input would go to the "old" session and some of the input goes to the "new" session.

an example that hopefully might illustrate this.

  • connect on "old" session. cd to ~/config
  • "old" session times out
  • sometime later, "new" session is established
  • mixing situation occurs
  • at this point just hitting enter continuously returns back sometimes ~/config and sometimes ~/
  • trying to enter commands usually fails at this stage
  • just continuously sending EOF (Ctrl-D) at this point appears to clean up "old" session and "new" session
  • establish "newer" session appears okay

comment:3 by waddlesplash, 11 months ago

Can you check the process tree on Haiku after establishing the "new" session? And then get a tcpdump on the (I guess Linux?) machine that's connecting to the Haiku machine?

comment:4 by waddlesplash, 11 months ago

Can you also check if hrev56987 is hrev at which the problem starts occurring, and hrev56980 or prior has no problem (note that intermediate hrevs between those two have a bug that will prevent TTYs from working properly, so don't bother testing them.)

comment:5 by pulkomandy, 11 months ago

I think I had something similar happen with Terminal.

  • Ran cat on a binary file which eventually froze Terminal
  • Killed Terminal
  • Started a new Terminal

All commands I type in the new terminal are misunderstood. For example I type "cd" and bash replies "d: command not found". I type "reset; cd; exit" and bash replies "retdex: command not found".

I would guess something is consuming tty bytes that it shouldn't be?

comment:6 by waddlesplash, 11 months ago

Sounds like the TTY isn't getting closed/hung up properly, there's probably a lingering bash process, indeed.

comment:7 by waddlesplash, 11 months ago

Component: - GeneralDrivers/TTY

comment:8 by waddlesplash, 10 months ago

Resolution: fixed
Status: newclosed

Fixed in hrev57141.

comment:9 by hoanga, 10 months ago

a short follow up as i haven't had enough time to setup a proper setup to try checking the suggested hrevs for when this problem might have manifested. however in keeping in sync on nightly builds, i have not noticed this occurring (and have tried to get this to occur) when using hrev57141 or higher. thanks for the quick turnaround!

Note: See TracTickets for help on using tickets.