Re: -current dropping ssh connections

From: Mark Millard <marklmi_at_yahoo.com>
Date: Tue, 27 Jun 2023 02:38:22 UTC
On Jun 26, 2023, at 19:00, bob prohaska <fbsd@www.zefox.net> wrote:

> On Thu, Jun 22, 2023 at 11:38:50PM +0100, Jamie Landeg-Jones wrote:
>> bob prohaska <fbsd@www.zefox.net> wrote:
>> 
>>> That seems worth a try.
>>> The notion of an ssh escape (~. in this case) finding its way into the data stream is new to me.
>> 
>> Thinking again, that looks like corruption coming down the ssh connection.
>> For the ssh escape char to affect anything (note it needs to be preceeded
>> by a new line) it would have to be sent up the line.
>> 
>> For an example, assuming ssh has the default escape char, look at the difference between:
>> 
>> printf 'pwd;\n~.;echo sleeping.; sleep 5' | ssh -tt user@host
>> 
>> and with the same printf, but no escape char:
>> 
>> printf 'pwd;\n~.;echo sleeping.; sleep 5' | ssh -tt -e none user@host
>> 
>> You can see how the former closes the connection due to the \n~.
>> 
>> (The -tt forces a terminal/interactive session to be set up - normally, as we are
>> piping input to ssh in this case, the terminal isnt set up, and the escape character
>> isn't used - it's only recongnised in interactive sesions by default)
>> 
>> I personally have "EscapeChar none" in my ssh_config, but I suspect this
>> is probably not the issue here, still, can't hurt to try it!
> 
> Indeed, connection was dropped with escape character set to none.
> There does seem to be a some dependence on system load. Connections
> survive at light or no load and drop when the sshd side is busy. 

So how busy is the disk media (really the USB bus) from
somewhat before the failures happen to the failure point?
The question applies separately to both systems involved
in the ssh session.

I'll remind that on a RPi2B v1.1, RPi2B v1.2, or RPi3B*
the Ethernet and the 4 USB ports all share the one USB2
path at an internal stage for the USB subsystem, if I
remember right.

Saturating that USB2 path with data transfer bytes
to/from disk media might be able to block other activity
long enough to cause the Ethernet communications to have
problems for all I know. (Amount of data queued for
transfer would be relevant.)

This might be a reason to avoid settings for the
combination vm.pfault_oom_attempts and vm.pfault_oom_wait
to values that could contribute to a sustained period of
saturating the USB channel.

(I have no detailed knowledge of how the tradeoffs work
for the competing uses of the USB channel. So I can not
validly claim to know that the above is realistic.)

===
Mark Millard
marklmi at yahoo.com