python - Time out on lost connection in Paramiko -
i need handle connectivity problems correctly while executing long-running commands on ssh paramiko.
the exec_command
has timeout
argument throws exception if there no response. raises when connection lost when command execute works longer timeout
seconds.
so tried use set_keepalive
not work either. paramiko not guarantee keepalive packet sent , seems not check keepalive response server. put:
iptables -a input -s ... -j drop
on target server in middle of command executes , watched paramiko's debug logs - keeps sending keepalive packet , not pay attention @ absence of server response. seems there nothing similar openssh
serveralivecountmax
param kill ssh if there no response client ssh server.
as see there no way distinguish long running command , network failure. can put timeout
on exec_command
call , believe if exception raised it's not slow command connection loss.
is there solid way solve problem?
both cases network failures, 1 didn't work start, other 1 because failed later. in end there no difference between them.
it decide how code behaves in case. usual approach retry inserting growing timeout.
the famous algorithm called exponential backoff.
Comments
Post a Comment