Steffen Nurpmeso
2025-Oct-14  15:47 UTC
On the impossibility to use escape sequences when the networks hangs
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)
Steffen Nurpmeso
2025-Oct-14  15:48 UTC
On the impossibility to use escape sequences when the networks hangs
Steffen Nurpmeso wrote in <20251014154738.Shm3zGWb at steffen%sdaoden.eu>: |Steffen Nurpmeso wrote in | <20251014153948.s43LKday at steffen%sdaoden.eu>: ||Theo de Raadt wrote in || <6240.1760455482 at cvs.openbsd.org>: ... |Off for cycling. Hey it makes a bug report. Still off for cycling now. --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)
Damien Miller
2025-Oct-15  22:33 UTC
On the impossibility to use escape sequences when the networks hangs
On Tue, 14 Oct 2025, Steffen Nurpmeso wrote:> 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.of course. ^C, ^Z etc are processed *by the server*. If there is no connectivity to the server then they can't be processed. ~. is processed by the ssh client, so you should be able to use it under most circumstances. Use [enter]~. to terminate a stuck ssh connection. -d