On the impossibility to use escape sequences when the networks hangs

Steffen Nurpmeso steffen at sdaoden.eu
Wed Oct 15 02:47:38 AEDT 2025


Steffen Nurpmeso wrote in
 <20251014153948.s43LKday at steffen%sdaoden.eu>:
 |Theo de Raadt wrote in
 | <6240.1760455482 at cvs.openbsd.org>:
 ...
 ||I think you are confused.  <newline>~[letter] parsing is in the client
 ||character input side, and the server or the link to the server has nothing
 ||to do with it.
 |
 |But input is impossible.  It is stuck.  Not even ^C processing
 |happens.  And, as i wrote, the code looks for newline (that much
 |i grasped before posting), and that i cannot input.

i mean ok that after ^C .. maybe some special shell does *not*
"restart line processing" if it gets that, so maybe ssh cannot
assume anything after that ^C; still, i cannot input even that.

Look, i can easily reproduce it, though -vvv does not help:

  #?00.00 1/121|sdaoden:steffen$ debug3: obfuscate_keystroke_timing: stopping: chaff time expired (197 chaff packets sent)
  debug3: obfuscate_keystroke_timing: starting: interval ~20ms
  ^C
  #?1300.00 1/121|sdaoden:steffen$ debug3: obfuscate_keystroke_timing: stopping: chaff time expired (76 chaff packets sent)
  debug3: obfuscate_keystroke_timing: starting: interval ~20ms

^ disable packet transmission.  And hit ^C several times in a row.

  debug3: obfuscate_keystroke_timing: stopping: chaff time expired (501 chaff packets sent)

^ then reenable packet transmission after dunno maybe 10 seconds

  ^C
  #?1300.00 1/121|sdaoden:steffen$ ^C
  #?1300.00 1/121|sdaoden:steffen$ ^C
  #?1300.00 1/121|sdaoden:steffen$ ^C
  #?1300.00 1/121|sdaoden:steffe^C zcz^C
  #?1300.00 1/121|sdaoden:steffen$ ^C
  #?1300.00 1/121|sdaoden:steffen$ ^C
  #?1300.00 1/121|sdaoden:steffen$ ^C
  #?1300.00 1/121|sdaoden:steffen$

^ all these were in the input queue, i did not type at all.

And, hey, i do not write a patch, i just got paraded by Denys
Vlasenko who fixed a broken Dijkstra two-stack shell algorithm by
shrinking the code, whereas i added 2000 bytes and complicated
stack walks to fix it.  I get more detailed error conditions (eg
  sh: line 0: ?: condition, invalid precedence (1:v2:v3=3) (rest: I3:I2=12))
instead of
  sh: arithmetic syntax error
but i mean, that is not sufficient to heal my wounds.

Off for cycling.

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)


More information about the openssh-unix-dev mailing list