clojure-emacs / clj-refactor.el

A CIDER extension that provides powerful commands for refactoring Clojure code.
GNU General Public License v3.0
773 stars 111 forks source link

clj-refactor latest doesn't work together with latest cider / cider-nrepl 0.20 #432

Closed Macroz closed 5 years ago

Macroz commented 5 years ago

Expected behavior

I can cider-jack-in-clj&cljs, get two repls and can live code.

Actual behavior

Hangs at trying to connect to repls

Debugger entered--Lisp error: (quit)
 accept-process-output(nil 0.01)
 nrepl-send-sync-request(("op" "version" "prefix-rewriting" "false" "debug" "false") #<buffer *cider-repl dev/rems:localhost:36200(clj)*> nil)
 cider-nrepl-send-sync-request(("op" "version" "prefix-rewriting" "false" "debug" "false"))
 cljr--call-middleware-sync(("op" "version" "prefix-rewriting" "false" "debug" "false") "version")
 cljr--middleware-version()
 cljr--check-middleware-version()
 cljr--init-middleware()
 run-hooks(cider-connected-hook)
 cider--connected-handler()
 run-hooks(nrepl-connected-hook)
...

Steps to reproduce the problem

Environment & Version information

clj-refactor.el version information

clj-refactor 2.4.0 (package: 20181224.1310), refactor-nrepl is unreachable

clj-refactor-20181224.1310

CIDER version information

cider-20190108.925

Leiningen or Boot version

2.8.3

Emacs version

26.1

Operating system

ubuntu 16.04 and 18.04

bbatsov commented 5 years ago

I guess some part of the backtrace is missing, as it's not clear to me where did the error originate exactly.

Macroz commented 5 years ago

this is where my machine hangs

Debugger entered--Lisp error: (quit)
  accept-process-output(nil 0.01)
  nrepl-send-sync-request(("op" "version" "prefix-rewriting" "false"
"debug" "false") #<buffer *cider-repl dev/rems:localhost:36200(clj)*> nil)
  cider-nrepl-send-sync-request(("op" "version" "prefix-rewriting" "false"
"debug" "false"))
  cljr--call-middleware-sync(("op" "version" "prefix-rewriting" "false"
"debug" "false") "version")
  cljr--middleware-version()
  cljr--check-middleware-version()
  cljr--init-middleware()
  run-hooks(cider-connected-hook)
  cider--connected-handler()
  run-hooks(nrepl-connected-hook)
  nrepl-start-client-process("localhost" 36200 #<process nrepl-server>
#f(compiled-function (_) #<bytecode 0x1307f89>))
  cider-nrepl-connect((:project-dir "~/dev/rems/" :jack-in-cmd
"/home/markku/bin/lein update-in :dependencies conj \\[nrepl\\
\\\"0.5.3\\\"\\] -- update-in :dependencies conj \\[cider/piggieback\\
\\\"0.3.10\\\"\\] -- update-in :plugins conj \\[refactor-nrepl\\
\\\"2.4.0\\\"\\] -- update-in :plugins conj \\[cider/cider-nrepl\\
\\\"0.20.0-SNAPSHOT\\\"\\] -- repl :headless :host localhost"
:cljs-repl-type figwheel :do-prompt nil :host "localhost" :port 36200
:project-dir "~/dev/rems/" :server #<process nrepl-server> :server-command
"/home/markku/bin/lein update-in :dependencies conj \\[nrepl\\
\\\"0.5.3\\\"\\] -- update-in :dependencies conj \\[cider/piggieback\\
\\\"0.3.10\\\"\\] -- update-in :plugins conj \\[refactor-nrepl\\
\\\"2.4.0\\\"\\] -- update-in :plugins conj \\[cider/cider-nrepl\\
\\\"0.20.0-SNAPSHOT\\\"\\] -- repl :headless :host localhost"
:repl-init-function nil :repl-type clj :session-name nil))
  cider-connect-sibling-clj((:project-dir "~/dev/rems/" :jack-in-cmd
"/home/markku/bin/lein update-in :dependencies conj \\[nrepl\\
\\\"0.5.3\\\"\\] -- update-in :dependencies conj \\[cider/piggieback\\
\\\"0.3.10\\\"\\] -- update-in :plugins conj \\[refactor-nrepl\\
\\\"2.4.0\\\"\\] -- update-in :plugins conj \\[cider/cider-nrepl\\
\\\"0.20.0-SNAPSHOT\\\"\\] -- repl :headless :host localhost"
:cljs-repl-type figwheel :do-prompt nil) #<buffer *nrepl-server
dev/rems:localhost*>)
  #f(compiled-function (server-buffer) #<bytecode 0x10b1365>)(#<buffer
*nrepl-server dev/rems:localhost*>)
  nrepl-server-filter(#<process nrepl-server> "nREPL server started on port
36200 on host localhost - nrepl://localhost:36200\n")
Macroz commented 5 years ago

I wonder if anyone has the latest in a working setup?

expez commented 5 years ago

Has there been any breaking API changes to nREPL @bbatsov? This looks to be failing on the very first call to our middleware.

bbatsov commented 5 years ago

Nope. And also no one else has reported such a breakage, so I doubt this is nREPL related. I was doing some changes to how pprinting works in cider-nrepl that might have affected somehow refactor-nrepl, but that also seems unlikely.

benedekfazekas commented 5 years ago

I use 0.19 cider with this cljr in the office, jacking in clj&cljs wo/ any probs. so if it is really related to a change should have happened since 0.19 (whatever middlewares, nrepl 0.19 works with)

Macroz commented 5 years ago

@benedekfazekas so you don't use the latest cider from melpa if you have 0.19? And do you use figwheel perhaps or something else?

benedekfazekas commented 5 years ago

yeah, right so not exactly the same cider version as yours. yes, figwheel

Macroz commented 5 years ago

I'll see what I can figure out something by reproducing with slightly different settings. Good to know it works for someone and it's likely mostly in my setup.

Macroz commented 5 years ago

Not much has happened, except me rebooting and tuning some of my config more. But now everything works so I'll just close this issue at least for now.

wmatson commented 5 years ago

I ended up getting the same issue, hanging at the same place (in the call to cljr--middleware-version on repl start). This is on a non-figwheel project for me, occurring with cider-jack-in-clj.