Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement ssh session keep alive #134

Open
retrogradeorbit opened this issue Aug 17, 2021 · 0 comments
Open

Implement ssh session keep alive #134

retrogradeorbit opened this issue Aug 17, 2021 · 0 comments
Labels
enhancement New feature or request

Comments

@retrogradeorbit
Copy link
Member

I have a new cisco router. It disconnects idle TCP connections after some time. A very long running spire connection failed. Can fix it with local linux proc tcp keep alive value. But would be nice if spire ssh sessions had their own keep alive.

provisioning/common.clj:287 (apt :install ["zfs-dkms" "zfsutils-linux" "zfsnap"])
Exception in thread "main" clojure.lang.ExceptionInfo: session is down [at provisioning/common.clj, line 313, column 1] {:type :sci/error, :line 313, :column 1, :message "session is down [at provisioning/common.clj, line 313, column 1]"}
	at sci.impl.utils$rethrow_with_location_of_node.invokeStatic(utils.cljc:72)
	at sci.impl.interpreter$eval_call.invokeStatic(interpreter.cljc:573)
	at sci.impl.interpreter$interpret.invokeStatic(interpreter.cljc:613)
	at sci.impl.interpreter$eval_form.invokeStatic(interpreter.cljc:645)
	at sci.impl.interpreter$eval_string_STAR_.invokeStatic(interpreter.cljc:658)
	at sci.core$eval_string_STAR_.invokeStatic(core.cljc:189)
	at spire.eval$evaluate.invokeStatic(eval.clj:87)
	at spire.core$_main.invokeStatic(core.clj:80)
	at spire.core$_main.doInvoke(core.clj:57)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at spire.core.main(Unknown Source)
Caused by: com.jcraft.jsch.JSchException: session is down
	at com.jcraft.jsch.Session.openChannel(Session.java:861)
	at spire.ssh$ssh_exec_proc.invokeStatic(ssh.clj:202)
	at spire.ssh$ssh_exec.invokeStatic(ssh.clj:281)
	at spire.ssh$ssh_exec.invoke(ssh.clj:256)
	at spire.facts$runner.invokeStatic(facts.clj:163)
	at spire.facts$run_and_return_lines.invokeStatic(facts.clj:179)
	at spire.facts$fetch_facts_paths.invokeStatic(facts.clj:318)
	at spire.facts$fetch_facts_paths.invoke(facts.clj:318)
	at spire.facts$fetch_facts_paths.invokeStatic(facts.clj:324)
	at spire.facts$update_facts_paths_BANG_.invokeStatic(facts.clj:326)
	at spire.module.apt$apt_STAR_.invokeStatic(apt.clj:189)
	at spire.module.apt$apt_STAR_.doInvoke(apt.clj:183)
	at clojure.lang.RestFn.invoke(RestFn.java:421)
	at sci.impl.interpreter$fn_call.invokeStatic(interpreter.cljc:522)
	at sci.impl.interpreter$eval_call.invokeStatic(interpreter.cljc:573)
	at sci.impl.interpreter$interpret.invokeStatic(interpreter.cljc:613)
	at sci.impl.interpreter$interpret.invoke(interpreter.cljc:590)
	at sci.impl.interpreter$eval_do_STAR_$fn__5649.invoke(interpreter.cljc:479)
	at sci.impl.interpreter$eval_do_STAR_.invokeStatic(interpreter.cljc:479)
	at sci.impl.interpreter$eval_do.invokeStatic(interpreter.cljc:488)
	at sci.impl.interpreter$eval_special_call.invokeStatic(interpreter.cljc:555)
	at sci.impl.interpreter$eval_call.invokeStatic(interpreter.cljc:564)
	at sci.impl.interpreter$interpret.invokeStatic(interpreter.cljc:613)
	at sci.impl.interpreter$interpret.invoke(interpreter.cljc:590)
	at sci.impl.interpreter$eval_let$fn__5469.invoke(interpreter.cljc:76)
	at sci.impl.interpreter$eval_let.invokeStatic(interpreter.cljc:64)
	at sci.impl.interpreter$eval_let.doInvoke(interpreter.cljc:61)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:667)
	at sci.impl.interpreter$eval_special_call.invokeStatic(interpreter.cljc:536)
	at sci.impl.interpreter$eval_call.invokeStatic(interpreter.cljc:564)
	at sci.impl.interpreter$interpret.invokeStatic(interpreter.cljc:613)
	at sci.impl.interpreter$interpret.invoke(interpreter.cljc:590)
	at sci.impl.interpreter$eval_do_STAR_$fn__5649.invoke(interpreter.cljc:479)
	at sci.impl.interpreter$eval_do_STAR_.invokeStatic(interpreter.cljc:479)
	at sci.impl.interpreter$eval_do.invokeStatic(interpreter.cljc:488)
	at sci.impl.interpreter$eval_special_call.invokeStatic(interpreter.cljc:555)
	at sci.impl.interpreter$eval_call.invokeStatic(interpreter.cljc:564)
	at sci.impl.interpreter$interpret.invokeStatic(interpreter.cljc:613)
	at sci.impl.interpreter$interpret.invoke(interpreter.cljc:590)
	at sci.impl.interpreter$eval_try.invokeStatic(interpreter.cljc:291)
	at sci.impl.interpreter$interpret.invokeStatic(interpreter.cljc:613)
	at sci.impl.interpreter$interpret.invoke(interpreter.cljc:590)
	at sci.impl.interpreter$eval_do_STAR_$fn__5649.invoke(interpreter.cljc:479)
	at sci.impl.interpreter$eval_do_STAR_.invokeStatic(interpreter.cljc:479)
	at sci.impl.interpreter$eval_do.invokeStatic(interpreter.cljc:488)
	at sci.impl.interpreter$eval_special_call.invokeStatic(interpreter.cljc:555)
	at sci.impl.interpreter$eval_call.invokeStatic(interpreter.cljc:564)
	at sci.impl.interpreter$interpret.invokeStatic(interpreter.cljc:613)
	at sci.impl.interpreter$interpret.invoke(interpreter.cljc:590)
	at sci.impl.interpreter$eval_let.invokeStatic(interpreter.cljc:85)
	at sci.impl.interpreter$eval_let.doInvoke(interpreter.cljc:61)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:667)
	at sci.impl.interpreter$eval_special_call.invokeStatic(interpreter.cljc:536)
	at sci.impl.interpreter$eval_call.invokeStatic(interpreter.cljc:564)
	at sci.impl.interpreter$interpret.invokeStatic(interpreter.cljc:613)
	at sci.impl.interpreter$interpret.invoke(interpreter.cljc:590)
	at sci.impl.fns$parse_fn_args_PLUS_body$run_fn__2068.doInvoke(fns.cljc:44)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at sci.impl.vars.SciVar.invoke(vars.cljc:314)
	at sci.impl.interpreter$fn_call.invokeStatic(interpreter.cljc:522)
	at sci.impl.interpreter$eval_call.invokeStatic(interpreter.cljc:573)
	at sci.impl.interpreter$interpret.invokeStatic(interpreter.cljc:613)
	at sci.impl.interpreter$interpret.invoke(interpreter.cljc:590)
	at sci.impl.interpreter$eval_do_STAR_$fn__5649.invoke(interpreter.cljc:479)
	at sci.impl.interpreter$eval_do_STAR_.invokeStatic(interpreter.cljc:479)
	at sci.impl.interpreter$eval_do.invokeStatic(interpreter.cljc:488)
	at sci.impl.interpreter$eval_special_call.invokeStatic(interpreter.cljc:555)
	at sci.impl.interpreter$eval_call.invokeStatic(interpreter.cljc:564)
	at sci.impl.interpreter$interpret.invokeStatic(interpreter.cljc:613)
	at sci.impl.interpreter$interpret.invoke(interpreter.cljc:590)
	at sci.impl.interpreter$eval_do_STAR_$fn__5649.invoke(interpreter.cljc:479)
	at sci.impl.interpreter$eval_do_STAR_.invokeStatic(interpreter.cljc:479)
	at sci.impl.interpreter$eval_do.invokeStatic(interpreter.cljc:488)
	at sci.impl.interpreter$eval_special_call.invokeStatic(interpreter.cljc:555)
	at sci.impl.interpreter$eval_call.invokeStatic(interpreter.cljc:564)
	at sci.impl.interpreter$interpret.invokeStatic(interpreter.cljc:613)
	at sci.impl.interpreter$interpret.invoke(interpreter.cljc:590)
	at sci.impl.interpreter$eval_try.invokeStatic(interpreter.cljc:291)
	at sci.impl.interpreter$interpret.invokeStatic(interpreter.cljc:613)
	at sci.impl.interpreter$interpret.invoke(interpreter.cljc:590)
	at sci.impl.interpreter$eval_let.invokeStatic(interpreter.cljc:85)
	at sci.impl.interpreter$eval_let.doInvoke(interpreter.cljc:61)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:667)
	at sci.impl.interpreter$eval_special_call.invokeStatic(interpreter.cljc:536)
	at sci.impl.interpreter$eval_call.invokeStatic(interpreter.cljc:564)
	at sci.impl.interpreter$interpret.invokeStatic(interpreter.cljc:613)
	at sci.impl.interpreter$interpret.invoke(interpreter.cljc:590)
	at sci.impl.interpreter$eval_let.invokeStatic(interpreter.cljc:85)
	at sci.impl.interpreter$eval_let.doInvoke(interpreter.cljc:61)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:667)
	at sci.impl.interpreter$eval_special_call.invokeStatic(interpreter.cljc:536)
	at sci.impl.interpreter$eval_call.invokeStatic(interpreter.cljc:564)
	at sci.impl.interpreter$interpret.invokeStatic(interpreter.cljc:613)
	at sci.impl.interpreter$interpret.invoke(interpreter.cljc:590)
	at sci.impl.interpreter$eval_do_STAR_$fn__5649.invoke(interpreter.cljc:479)
	at sci.impl.interpreter$eval_do_STAR_.invokeStatic(interpreter.cljc:479)
	at sci.impl.interpreter$eval_do.invokeStatic(interpreter.cljc:488)
	at sci.impl.interpreter$eval_special_call.invokeStatic(interpreter.cljc:555)
	at sci.impl.interpreter$eval_call.invokeStatic(interpreter.cljc:564)
	at sci.impl.interpreter$interpret.invokeStatic(interpreter.cljc:613)
	at sci.impl.interpreter$interpret.invoke(interpreter.cljc:590)
	at sci.impl.interpreter$eval_try.invokeStatic(interpreter.cljc:291)
	at sci.impl.interpreter$interpret.invokeStatic(interpreter.cljc:613)
	at sci.impl.interpreter$interpret.invoke(interpreter.cljc:590)
	at sci.impl.interpreter$eval_let.invokeStatic(interpreter.cljc:85)
	at sci.impl.interpreter$eval_let.doInvoke(interpreter.cljc:61)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:667)
	at sci.impl.interpreter$eval_special_call.invokeStatic(interpreter.cljc:536)
	at sci.impl.interpreter$eval_call.invokeStatic(interpreter.cljc:564)
	... 9 more

@retrogradeorbit retrogradeorbit added the enhancement New feature or request label Aug 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant