Fork me on GitHub
#cider
<
2022-01-21
>
Benjamin08:01:44

with the latest master cider there is an error (in some cases) when it handles an exception Cannot open <nil> as a Reader

Benjamin08:01:05

ERROR: Unhandled REPL handler exception processing message {:op stacktrace, :nrepl.middleware.print/stream? 1, :nrepl.middleware.print/print cider.nrepl.pprint/pprint, :nrepl.middleware.print/quota 1048576, :nrepl.middleware.print/buffer-size 4096, :nrepl.middleware.print/options {:right-margin 70}, :session 544c1c6d-8c96-4538-9149-3eb86f66bc09, :id 96}
java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Cannot open <nil> as a Reader.
	at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
	at clojure.core$deref_future.invokeStatic(core.clj:2304)
	at clojure.core$future_call$reify__8477.deref(core.clj:6976)
	at clojure.core$deref.invokeStatic(core.clj:2324)
	at clojure.core$deref.invoke(core.clj:2310)
	at clojure.core$map$fn__5884.invoke(core.clj:2759)
	at clojure.lang.LazySeq.sval(LazySeq.java:42)
	at clojure.lang.LazySeq.seq(LazySeq.java:51)
	at clojure.lang.RT.seq(RT.java:535)
	at clojure.core$seq__5419.invokeStatic(core.clj:139)
	at clojure.core$filter$fn__5911.invoke(core.clj:2813)
	at clojure.lang.LazySeq.sval(LazySeq.java:42)
	at clojure.lang.LazySeq.seq(LazySeq.java:51)
	at clojure.lang.Cons.next(Cons.java:39)
	at clojure.lang.RT.length(RT.java:1785)
	at clojure.lang.RT.seqToArray(RT.java:1726)
	at clojure.lang.LazySeq.toArray(LazySeq.java:132)
	at clojure.lang.RT.toArray(RT.java:1699)
	at clojure.core$to_array.invokeStatic(core.clj:346)
	at clojure.core$sort.invokeStatic(core.clj:3101)
	at clojure.core$sort.invokeStatic(core.clj:3090)
	at clojure.core$sort.invoke(core.clj:3090)
	at cider.nrepl.inlined_deps.orchard.v0v9v0.orchard.namespace$classpath_namespaces.invokeStatic(namespace.clj:119)
	at cider.nrepl.inlined_deps.orchard.v0v9v0.orchard.namespace$classpath_namespaces.invoke(namespace.clj:106)
	at cider.nrepl.inlined_deps.orchard.v0v9v0.orchard.namespace$project_namespaces.invokeStatic(namespace.clj:131)
	at cider.nrepl.inlined_deps.orchard.v0v9v0.orchard.namespace$project_namespaces.invoke(namespace.clj:123)
	at cider.nrepl.middleware.stacktrace$directory_namespaces.invokeStatic(stacktrace.clj:132)
	at cider.nrepl.middleware.stacktrace$directory_namespaces.invoke(stacktrace.clj:122)
	at cider.nrepl.middleware.stacktrace$analyze_stacktrace.invokeStatic(stacktrace.clj:216)
	at cider.nrepl.middleware.stacktrace$analyze_stacktrace.invoke(stacktrace.clj:213)
	at cider.nrepl.middleware.stacktrace$analyze_cause.invokeStatic(stacktrace.clj:323)
	at cider.nrepl.middleware.stacktrace$analyze_cause.invoke(stacktrace.clj:314)
	at cider.nrepl.middleware.stacktrace$analyze_causes$fn__4422.invoke(stacktrace.clj:348)
	at clojure.core$map$fn__5880$fn__5881.invoke(core.clj:2746)
	at clojure.core$take_while$fn__5931$fn__5932.invoke(core.clj:2905)
	at clojure.lang.Iterate.reduce(Iterate.java:81)
	at clojure.core$transduce.invokeStatic(core.clj:6885)
	at clojure.core$into.invokeStatic(core.clj:6901)
	at clojure.core$into.invoke(core.clj:6889)
	at cider.nrepl.middleware.stacktrace$analyze_causes.invokeStatic(stacktrace.clj:347)
	at cider.nrepl.middleware.stacktrace$analyze_causes.invoke(stacktrace.clj:339)
	at cider.nrepl.middleware.stacktrace$handle_stacktrace.invokeStatic(stacktrace.clj:356)
	at cider.nrepl.middleware.stacktrace$handle_stacktrace.invoke(stacktrace.clj:353)
	at clojure.lang.Var.invoke(Var.java:388)
	at cider.nrepl$wrap_stacktrace$fn__2459.invoke(nrepl.clj:432)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at cider.nrepl$wrap_format$fn__2377.invoke(nrepl.clj:194)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at nrepl.middleware.interruptible_eval$interruptible_eval$fn__1278.invoke(interruptible_eval.clj:154)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at cider.nrepl$wrap_inspect$fn__2395.invoke(nrepl.clj:227)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at nrepl.middleware.session$add_stdin$fn__1396.invoke(session.clj:379)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at nrepl.middleware.sideloader$wrap_sideloader$fn__1901.invoke(sideloader.clj:108)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at cider.nrepl$wrap_xref$fn__2509.invoke(nrepl.clj:514)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at cider.nrepl$wrap_out$fn__2419.invoke(nrepl.clj:334)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at cider.nrepl$wrap_ns$fn__2411.invoke(nrepl.clj:300)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at cider.nrepl$wrap_debug$fn__2361.invoke(nrepl.clj:163)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at cider.nrepl$wrap_enlighten$fn__2369.invoke(nrepl.clj:190)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at cider.nrepl$wrap_profile$fn__2427.invoke(nrepl.clj:343)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at cider.nrepl$wrap_apropos$fn__2335.invoke(nrepl.clj:129)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at nrepl.middleware.dynamic_loader$wrap_dynamic_loader$fn__1464.invoke(dynamic_loader.clj:98)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at nrepl.middleware.load_file$wrap_load_file$fn__1820.invoke(load_file.clj:81)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at cider.nrepl$wrap_tracker$fn__2483.invoke(nrepl.clj:482)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at nrepl.middleware.caught$wrap_caught$fn__1211.invoke(caught.clj:97)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at cider.nrepl$wrap_content_type$fn__2319.invoke(nrepl.clj:107)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at nrepl.middleware.session$session$fn__1381.invoke(session.clj:325)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at nrepl.middleware.print$wrap_print$fn__1178.invoke(print.clj:234)
	at nrepl.middleware$wrap_conj_descriptor$fn__942.invoke(middleware.clj:16)
	at nrepl.server$default_handler$fn__1949.invoke(server.clj:141)
	at nrepl.server$handle_STAR_.invokeStatic(server.clj:24)
	at nrepl.server$handle_STAR_.invoke(server.clj:21)
	at nrepl.server$handle$fn__1917.invoke(server.clj:41)
	at clojure.core$binding_conveyor_fn$fn__5772.invoke(core.clj:2034)
	at clojure.lang.AFn.call(AFn.java:18)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IllegalArgumentException: Cannot open <nil> as a Reader.
	at $fn__11544.invokeStatic(io.clj:288)
	at $fn__11544.invoke(io.clj:288)
	at $fn__11446$G__11422__11453.invoke(io.clj:69)
	at $reader.invokeStatic(io.clj:102)
	at $reader.doInvoke(io.clj:86)
	at clojure.lang.RestFn.invoke(RestFn.java:410)
	at cider.nrepl.inlined_deps.orchard.v0v9v0.orchard.namespace$read_namespace.invokeStatic(namespace.clj:22)
	at cider.nrepl.inlined_deps.orchard.v0v9v0.orchard.namespace$read_namespace.invoke(namespace.clj:19)
	at clojure.

Benjamin08:01:30

cider 8bb67174ffa0cd7ae01f544926b4ed5a17965d76

vemv08:01:11

I think @U051BLM8F was afk a few days, can deploy if needed

Benjamin08:01:19

ah can I patch my orchard version then to get the fix already?

vemv09:01:41

transiently yes, persistently it's harder than it might seem the transient fix: jump to

cider.nrepl.inlined_deps.orchard.v0v9v0.orchard.namespace
replicate https://github.com/clojure-emacs/orchard/commit/2728d6fbbbb74388ca3bf5bd383943cb8cb36e41 and eval the changes with cider

👀 1
vemv09:01:26

Anyway said PR is merged now, if you use cider master via git I guess that you can just pull it, if it's via melpa, you'd have to wait until the melpa badge here https://github.com/clojure-emacs/cider indicates today's day (should happen within a few hours - it's outside our control)

Benjamin09:01:48

sick thanks

bozhidar09:01:43

We still need a bugfix cider-nrepl release that the MELPA release would use, otherwise people would have to build a new cider-nrepl themselves and point CIDER to it.

bozhidar09:01:17

I've been traveling the past couple of weeks, and now I have a ton of things to catch up with, or so it seems. 🙂

vemv10:01:05

Oh yes sorry about that misinfo, having a slow morning I guess

djanus10:01:14

Hello! CIDER used to bind cider-find-var to M-. in buffers connected to a REPL – it appears to have stopped doing that. Is that on purpose?

bozhidar10:01:35

It's now replaced by default with xref keybindings, and there's a setting to revert to the old behaviour.

bozhidar10:01:07

In practice xref should behave the same, unless you're using other xref provides for Clojure (e.g. clojure-lsp).

djanus10:01:52

hmm, looks like I need to go learn about xref 🙂

mac13:01:48

@U051BLM8F I am having issues with go to definition too. If I just load a Clojure file it works(presumably because of come fallback), but if I jack in, I get 'Nothing under point'. I have tried with CIDER 1.2.0 and CIDER 1.1.1, but the result is the same.

bozhidar13:01:48

It's not supposed to work in files that haven't been evaluated.

mac13:01:59

The result is the same even if I load the buffer.

mac13:01:50

@U051BLM8F Sorry, forgot to mention you.

bozhidar14:01:10

Please, share here (or on GitHub) the nREPL message log, which should give us a bitter idea about what's going on.

mac14:01:37

@U051BLM8F This is what i see in the nrepl mesage buffer after enabling logging:

mac14:01:40

(--> id "23" op "info" session "0c26c6f1-51a5-439c-bbdf-f4b76647877d" time-stamp "2022-01-21 15:41:31.297180000" ns "http://hypercontracts.domains.contracts.se.adda.trygghetslarm-2019...." sym "period-form" ) (<-- id "23" session "0c26c6f1-51a5-439c-bbdf-f4b76647877d" time-stamp "2022-01-21 15:41:31.302015400" arglists-meta (nil nil) arglists-str "[]" column 1 end-column 18 end-line 18 file "file:/home/mac/projects/hypercontracts/src/cljs/hypercontrac..." fn-var "true" line 18 max-fixed-arity 0 meta (dict ...) method-params (nil) name "period-form" ns "http://hypercontracts.domains.contracts.se.adda.trygghetslarm-2019...." resource "hypercontracts/domains/contracts/se/adda/trygghetslarm_2019/..." ret-tag "function" status ("done") variadic? "false" )

bozhidar14:01:28

Seems like data about the symbol was returned properly from the backend. Does this happen only in ClojureScript?

mac15:01:21

@U051BLM8F No, it is the same with Clojure files.

mac15:01:44

Here is the corresonding nrepl log for clj.

bozhidar15:01:33

Hmm, everything looks just fine in the response. I see all the sym metadata. I'm puzzled as to why this isn't working for you.

mac15:01:12

@U051BLM8F Yeah, it is weird. Is there anything else I can provide? I am using Doom emacs, if that makes a diff?

mac16:01:40

@U051BLM8F And it only starts failing after jack-in. So strange. First I thought it had to do with lsp, but I have diabled that completely.

bozhidar17:01:07

Is this with or without xref integration?

mac17:01:33

@U051BLM8F I have not switched xref on or off. Just using defaults. Is there a way I could check?

mac21:01:47

@U051BLM8F I am attaching the output from describe-kye M-. before and after jacking in. Looks like xref is used after jacking in.

mac23:01:05

I finally tracked this down. Apparently it is an emacs bug in the version I am using. See https://github.com/hlissner/doom-emacs/issues/5537

bozhidar06:01:43

Got it. Those are always the hardest bugs to track.

mac18:01:50

@U051BLM8F Sorry to waste your time, thanks for your help.