This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-09-02
Channels
- # adventofcode (6)
- # announcements (6)
- # babashka (21)
- # babashka-sci-dev (18)
- # biff (6)
- # clara (4)
- # clj-commons (2)
- # clj-kondo (7)
- # cljdoc (4)
- # clojure (9)
- # clojure-berlin (8)
- # clojure-europe (23)
- # clojure-gamedev (3)
- # clojure-indonesia (1)
- # clojure-nl (1)
- # clojure-norway (10)
- # clojure-poland (1)
- # clojurescript (27)
- # community-development (1)
- # conjure (32)
- # etaoin (6)
- # events (20)
- # fulcro (5)
- # graalvm (1)
- # helix (19)
- # hyperfiddle (14)
- # introduce-yourself (2)
- # music (1)
- # nbb (24)
- # off-topic (37)
- # pathom (2)
- # polylith (14)
- # reagent (11)
- # releases (1)
- # remote-jobs (1)
- # reveal (22)
- # shadow-cljs (16)
- # sql (3)
- # squint (11)
- # test-check (2)
- # xtdb (36)
$ bb test/bb.clj
loading pod...
loaded
:prompt-password "Password for crispin@localhost"
:get-password
:prompt-password "Password for crispin@localhost"
:get-password
:prompt-password "Password for crispin@localhost"
:get-password
:prompt-password "Password for crispin@localhost"
:get-password
:prompt-password "Password for crispin@localhost"
:get-password
:prompt-password "Password for crispin@localhost"
:get-password
----- Error --------------------------------------------------------------------
Type: clojure.lang.ExceptionInfo
Message: SSH_MSG_DISCONNECT: 2 Too many authentication failures
Data: {:type com.jcraft.jsch.JSchException}
Location: /home/crispin/dev/clojure/bbssh/test/bb.clj:25:3
----- Context ------------------------------------------------------------------
21: "bbssh.core"] {:transport :socket})
22:
23: ;; run pod process from native-image to test
24: #_(pods/load-pod "./bbssh" {:transport :socket})
25:
^--- SSH_MSG_DISCONNECT: 2 Too many authentication failures
26: (println "loaded")
27:
28: (require
29: '[pod.epiccastle.bbssh.user-info :as user-info]
30: '[pod.epiccastle.bbssh.session :as session]
----- Stack trace --------------------------------------------------------------
babashka.pods.impl/processor - <built-in>
babashka.pods.sci/load-pod/fn--27349 - <built-in>
pod.epiccastle.bbssh.session/connect - /home/crispin/dev/clojure/bbssh/test/bb.clj:25:3
pod.epiccastle.bbssh.session/connect - /home/crispin/dev/clojure/bbssh/test/bb.clj:21:1
my-project.core - /home/crispin/dev/clojure/bbssh/test/bb.clj:61:3
line 25 is actually blank. It is actually line 61 that is executing when this gets raised.
pod.epiccastle.bbssh.session/connect
is not from /home/crispin/dev/clojure/bbssh/test/bb.clj
, it is injected into the pod apon describe
maybe if the file associated with pod.epiccastle.bbssh.session
was something like the <built-in>
. Or it could even refer to the source file within the pod project. That would be pretty sweet.
Maybe there could be a filename registered with the describe
response? Like {"namespace": "pod.epiccastle.bbssh.session", "filename": "<pod:pod/epiccastle/bbssh/session.clj>", "vars": [...]}
it's a bit like calling HTTP APIs. The error probably is reported at the site where you call an HTTP client, not the location of the response in a server that crashed...
I would at least expect that the location of the client side function that calls the pod would be reported. Isn't that the case?
If when displaying the code with the traceback you looked for the first frame with a valid filename, and displayed that. ie you skipped any filenames of the format <*>
. Then, if the injected describe
namespaces had one of those <*>
names, they would be skipped, and the file that would be displayed would be the correct one, at the correct line.