After running cider-refresh, the following things happen.
This might have been fixed on master. Are you running the bleeding edge from melpa or the 0.9.0 tag?
I was running 3dcbf1823f5eb23f9377877519df1740c80bfa97 (11 commits ago), but checking out the latest master didn’t change anything. Here’s the trace I got when running cider-refresh.
Show: Clojure Java REPL Tooling Duplicates All (0 frames hidden)
core.clj: 5491 clojure.core/load-lib
RestFn.java: 142 clojure.lang.RestFn/applyTo
core.clj: 626 clojure.core/apply
core.clj: 5524 clojure.core/load-libs
RestFn.java: 137 clojure.lang.RestFn/applyTo
core.clj: 626 clojure.core/apply
core.clj: 5607 clojure.core/require
RestFn.java: 482 clojure.lang.RestFn/invoke
instruments.clj: 1 ti.streamer.instruments/loading--auto--
nil: 1 ti.streamer.instruments__init/load
nil: -1 ti.streamer.instruments__init/<clinit>
Class.java: -2 java.lang.Class/forName0
Class.java: 348 java.lang.Class/forName
RT.java: 2093 clojure.lang.RT/loadClassForName
RT.java: 430 clojure.lang.RT/load
RT.java: 411 clojure.lang.RT/load
core.clj: 5641 clojure.core/load/fn
core.clj: 5640 clojure.core/load
RestFn.java: 408 clojure.lang.RestFn/invoke
core.clj: 5446 clojure.core/load-one
core.clj: 5486 clojure.core/load-lib/fn
core.clj: 5485 clojure.core/load-lib
RestFn.java: 142 clojure.lang.RestFn/applyTo
core.clj: 626 clojure.core/apply
core.clj: 5524 clojure.core/load-libs
RestFn.java: 137 clojure.lang.RestFn/applyTo
core.clj: 626 clojure.core/apply
core.clj: 5607 clojure.core/require
RestFn.java: 421 clojure.lang.RestFn/invoke
reload.clj: 35 deps.toolsnamespace.v0v2v10.clojure.tools.namespace.reload/track-reload-one
reload.clj: 52 deps.toolsnamespace.v0v2v10.clojure.tools.namespace.reload/track-reload
refresh.clj: 43 cider.nrepl.middleware.refresh/refresh-reply
refresh.clj: 52 cider.nrepl.middleware.refresh/wrap-refresh/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
undef.clj: 30 cider.nrepl.middleware.undef/wrap-undef/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
interruptible_eval.clj: 216 clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
load_file.clj: 79 clojure.tools.nrepl.middleware.load-file/wrap-load-file/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
REPL: 1 ti.repl-init/eval7669/fn/fn
inspect.clj: 81 cider.nrepl.middleware.inspect/wrap-inspect/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
session.clj: 238 clojure.tools.nrepl.middleware.session/add-stdin/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
pprint.clj: 51 cider.nrepl.middleware.pprint/wrap-pprint/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
pr_values.clj: 22 clojure.tools.nrepl.middleware.pr-values/pr-values/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
test.clj: 203 cider.nrepl.middleware.test/wrap-test/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
session.clj: 192 clojure.tools.nrepl.middleware.session/session/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
trace.clj: 65 cider.nrepl.middleware.trace/wrap-trace/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
info.clj: 265 cider.nrepl.middleware.info/wrap-info/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
ns.clj: 117 cider.nrepl.middleware.ns/wrap-ns/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
server.clj: 19 clojure.tools.nrepl.server/handle*
server.clj: 28 clojure.tools.nrepl.server/handle/fn
core.clj: 1910 clojure.core/binding-conveyor-fn/fn
AFn.java: 18 clojure.lang.AFn/call
FutureTask.java: 266 java.util.concurrent.FutureTask/run
ThreadPoolExecutor.java: 1142 java.util.concurrent.ThreadPoolExecutor/runWorker
ThreadPoolExecutor.java: 617 java.util.concurrent.ThreadPoolExecutor$Worker/run
Thread.java: 745 java.lang.Thread/run
core.clj: 5405 clojure.core/throw-if
RestFn.java: 442 clojure.lang.RestFn/invoke
core.clj: 5491 clojure.core/load-lib
RestFn.java: 142 clojure.lang.RestFn/applyTo
core.clj: 626 clojure.core/apply
core.clj: 5524 clojure.core/load-libs
RestFn.java: 137 clojure.lang.RestFn/applyTo
core.clj: 626 clojure.core/apply
core.clj: 5607 clojure.core/require
RestFn.java: 482 clojure.lang.RestFn/invoke
instruments.clj: 1 ti.streamer.instruments/loading--auto--
nil: 1 ti.streamer.instruments__init/load
nil: -1 ti.streamer.instruments__init/<clinit>
Class.java: -2 java.lang.Class/forName0
Class.java: 348 java.lang.Class/forName
RT.java: 2093 clojure.lang.RT/loadClassForName
RT.java: 430 clojure.lang.RT/load
RT.java: 411 clojure.lang.RT/load
core.clj: 5641 clojure.core/load/fn
core.clj: 5640 clojure.core/load
RestFn.java: 408 clojure.lang.RestFn/invoke
core.clj: 5446 clojure.core/load-one
core.clj: 5486 clojure.core/load-lib/fn
core.clj: 5485 clojure.core/load-lib
RestFn.java: 142 clojure.lang.RestFn/applyTo
core.clj: 626 clojure.core/apply
core.clj: 5524 clojure.core/load-libs
RestFn.java: 137 clojure.lang.RestFn/applyTo
core.clj: 626 clojure.core/apply
core.clj: 5607 clojure.core/require
RestFn.java: 421 clojure.lang.RestFn/invoke
reload.clj: 35 deps.toolsnamespace.v0v2v10.clojure.tools.namespace.reload/track-reload-one
reload.clj: 52 deps.toolsnamespace.v0v2v10.clojure.tools.namespace.reload/track-reload
refresh.clj: 43 cider.nrepl.middleware.refresh/refresh-reply
refresh.clj: 52 cider.nrepl.middleware.refresh/wrap-refresh/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
undef.clj: 30 cider.nrepl.middleware.undef/wrap-undef/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
interruptible_eval.clj: 216 clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
load_file.clj: 79 clojure.tools.nrepl.middleware.load-file/wrap-load-file/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
REPL: 1 ti.repl-init/eval7669/fn/fn
inspect.clj: 81 cider.nrepl.middleware.inspect/wrap-inspect/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
session.clj: 238 clojure.tools.nrepl.middleware.session/add-stdin/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
pprint.clj: 51 cider.nrepl.middleware.pprint/wrap-pprint/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
pr_values.clj: 22 clojure.tools.nrepl.middleware.pr-values/pr-values/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
test.clj: 203 cider.nrepl.middleware.test/wrap-test/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
session.clj: 192 clojure.tools.nrepl.middleware.session/session/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
trace.clj: 65 cider.nrepl.middleware.trace/wrap-trace/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
info.clj: 265 cider.nrepl.middleware.info/wrap-info/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
ns.clj: 117 cider.nrepl.middleware.ns/wrap-ns/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
server.clj: 19 clojure.tools.nrepl.server/handle*
server.clj: 28 clojure.tools.nrepl.server/handle/fn
core.clj: 1910 clojure.core/binding-conveyor-fn/fn
AFn.java: 18 clojure.lang.AFn/call
FutureTask.java: 266 java.util.concurrent.FutureTask/run
ThreadPoolExecutor.java: 1142 java.util.concurrent.ThreadPoolExecutor/runWorker
ThreadPoolExecutor.java: 617 java.util.concurrent.ThreadPoolExecutor$Worker/run
Thread.java: 745 java.lang.Thread/run
Class.java: -2 java.lang.Class/forName0
Class.java: 348 java.lang.Class/forName
RT.java: 2093 clojure.lang.RT/loadClassForName
RT.java: 430 clojure.lang.RT/load
RT.java: 411 clojure.lang.RT/load
core.clj: 5641 clojure.core/load/fn
core.clj: 5640 clojure.core/load
RestFn.java: 408 clojure.lang.RestFn/invoke
core.clj: 5446 clojure.core/load-one
core.clj: 5486 clojure.core/load-lib/fn
core.clj: 5485 clojure.core/load-lib
RestFn.java: 142 clojure.lang.RestFn/applyTo
core.clj: 626 clojure.core/apply
core.clj: 5524 clojure.core/load-libs
RestFn.java: 137 clojure.lang.RestFn/applyTo
core.clj: 626 clojure.core/apply
core.clj: 5607 clojure.core/require
RestFn.java: 421 clojure.lang.RestFn/invoke
reload.clj: 35 deps.toolsnamespace.v0v2v10.clojure.tools.namespace.reload/track-reload-one
reload.clj: 52 deps.toolsnamespace.v0v2v10.clojure.tools.namespace.reload/track-reload
refresh.clj: 43 cider.nrepl.middleware.refresh/refresh-reply
refresh.clj: 52 cider.nrepl.middleware.refresh/wrap-refresh/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
undef.clj: 30 cider.nrepl.middleware.undef/wrap-undef/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
interruptible_eval.clj: 216 clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
load_file.clj: 79 clojure.tools.nrepl.middleware.load-file/wrap-load-file/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
REPL: 1 ti.repl-init/eval7669/fn/fn
inspect.clj: 81 cider.nrepl.middleware.inspect/wrap-inspect/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
session.clj: 238 clojure.tools.nrepl.middleware.session/add-stdin/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
pprint.clj: 51 cider.nrepl.middleware.pprint/wrap-pprint/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
pr_values.clj: 22 clojure.tools.nrepl.middleware.pr-values/pr-values/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
test.clj: 203 cider.nrepl.middleware.test/wrap-test/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
session.clj: 192 clojure.tools.nrepl.middleware.session/session/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
trace.clj: 65 cider.nrepl.middleware.trace/wrap-trace/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
info.clj: 265 cider.nrepl.middleware.info/wrap-info/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
ns.clj: 117 cider.nrepl.middleware.ns/wrap-ns/fn
middleware.clj: 24 clojure.tools.nrepl.middleware/wrap-conj-descriptor/fn
server.clj: 19 clojure.tools.nrepl.server/handle*
server.clj: 28 clojure.tools.nrepl.server/handle/fn
core.clj: 1910 clojure.core/binding-conveyor-fn/fn
AFn.java: 18 clojure.lang.AFn/call
FutureTask.java: 266 java.util.concurrent.FutureTask/run
ThreadPoolExecutor.java: 1142 java.util.concurrent.ThreadPoolExecutor/runWorker
ThreadPoolExecutor.java: 617 java.util.concurrent.ThreadPoolExecutor$Worker/run
Thread.java: 745 java.lang.Thread/run
—
Ashton
On Jun 19, 2015, at 3:29 PM, Lars Andersen [email protected] wrote:
This might have been fixed on the latest master. Are you running the bleeding edge from melpa or the 0.9.0 tag?
—
Reply to this email directly or view it on GitHub https://github.com/clojure-emacs/cider/issues/1144#issuecomment-113632704.
@cichli Can you take a look a this?
Btw, I can't reproduce this (at least not with my simple tests).
@AshtonKem Any steps that reproduce this 100% of the time would be quite helpful.
Very strange, I can't reproduce it on a new project either. I'm digging into it now to figure out what's up.
For reasons I can't figure out, cider-refresh cannot load one particular namespace in our code base, but only once. If I manually recompile that file (C-c C-k), cider-refresh works reliably after that.
At this time, my best guess is that this codebase is too big to work with cider-refresh (277 namespaces and 129 dependencies). The only common pattern is certain namespaces not reloading cleanly, only to manually compile and allow cider-refresh to work again until a different file is changed.
At this time, my best guess is that this codebase is too big to work with cider-refresh (277 namespaces and 129 dependencies). The only common pattern is certain namespaces not reloading cleanly, only to manually compile and allow cider-refresh to work again until a different file is changed.
I wonder if this problem exists when using tools.namespace directly. cider-refresh is only a thin wrapper on top of tools.namespace.repl/refresh and it's important to figure out if this is a problem in our wrapper or the underlying function.
I'm running the latest copy of cider direct via git.
Ashton
Sent from my iPhone
On Jun 19, 2015, at 3:29 PM, Lars Andersen [email protected] wrote:
This might have been fixed on the latest master. Are you running the bleeding edge from melpa or the 0.9.0 tag?
—
Reply to this email directly or view it on GitHub.
@AshtonKem And what about my question?
Sorry, email fail on my part. I’ll give that a try later today.
—
Ashton
On Jun 29, 2015, at 1:07 PM, Bozhidar Batsov [email protected] wrote:
@AshtonKem https://github.com/AshtonKem And what about my question?
—
Reply to this email directly or view it on GitHub https://github.com/clojure-emacs/cider/issues/1144#issuecomment-116779622.
Any progress here?
CIDER 0.12.0, nREPL 0.2.12, clojure 1.7.0, java 1.8.0_66
I've had this issue stick around for 6-12 months. I don't have a massive number of namespaces and dependencies. I went ahead and ran the following in the REPL:
(use clojure.tools.namespace.repl)
(refresh)
:reloading (musicali-kids.upload musicali-kids.datomic.util musicali-kids.config.setting musicali-kids.datomic.core musicali-kids.css.constants musicali-kids.css.designs.sunshine.common musicali-kids.css.designs.sunshine.admin musicali-kids.config.site musicali-kids.util musicali-kids.datomic.functions musicali-kids.api musicali-kids.html.utils musicali-kids.html.core musicali-kids.html.public musicali-kids.datomic.core-test musicali-kids.pages.core musicali-kids.html.admin musicali-kids.css.defaults musicali-kids.upload-test musicali-kids.resource musicali-kids.email musicali-kids.schedule musicali-kids.css.designs.sunshine.public musicali-kids.css.designs.core musicali-kids.css.core musicali-kids.auth musicali-kids.handler musicali-kids.datomic.migration musicali-kids.router musicali-kids.payment)
:error-while-loading musicali-kids.api
#error {
:cause "namespace 'musicali-kids.upload' not found"
:via
[{:type clojure.lang.Compiler$CompilerException
:message "java.lang.Exception: namespace 'musicali-kids.upload' not found, compiling:(musicali_kids/api.clj:1:1)"
:at [clojure.core$throw_if doInvoke "core.clj" 5630]}
{:type java.lang.Exception
:message "namespace 'musicali-kids.upload' not found"
:at [clojure.core$load_lib doInvoke "core.clj" 5716]}]
:trace
[[clojure.core$load_lib doInvoke "core.clj" 5716]
[clojure.lang.RestFn applyTo "RestFn.java" 142]
[clojure.core$apply invoke "core.clj" 632]
[clojure.core$load_libs doInvoke "core.clj" 5749]
[clojure.lang.RestFn applyTo "RestFn.java" 137]
[clojure.core$apply invoke "core.clj" 632]
[clojure.core$require doInvoke "core.clj" 5832]
[clojure.lang.RestFn invoke "RestFn.java" 512]
[musicali_kids.api$eval25614$loading__5340__auto____25615 invoke "api.clj" 1]
[musicali_kids.api$eval25614 invoke "api.clj" 1]
[clojure.lang.Compiler eval "Compiler.java" 6782]
[clojure.lang.Compiler eval "Compiler.java" 6771]
[clojure.lang.Compiler load "Compiler.java" 7227]
[clojure.lang.RT loadResourceScript "RT.java" 371]
[clojure.lang.RT loadResourceScript "RT.java" 362]
[clojure.lang.RT load "RT.java" 446]
[clojure.lang.RT load "RT.java" 412]
[clojure.core$load$fn__5448 invoke "core.clj" 5866]
[clojure.core$load doInvoke "core.clj" 5865]
[clojure.lang.RestFn invoke "RestFn.java" 408]
[clojure.core$load_one invoke "core.clj" 5671]
[clojure.core$load_lib$fn__5397 invoke "core.clj" 5711]
[clojure.core$load_lib doInvoke "core.clj" 5710]
[clojure.lang.RestFn applyTo "RestFn.java" 142]
[clojure.core$apply invoke "core.clj" 632]
[clojure.core$load_libs doInvoke "core.clj" 5749]
[clojure.lang.RestFn applyTo "RestFn.java" 137]
[clojure.core$apply invoke "core.clj" 632]
[clojure.core$require doInvoke "core.clj" 5832]
[clojure.lang.RestFn invoke "RestFn.java" 421]
[clojure.tools.namespace.reload$track_reload_one invoke "reload.clj" 35]
[clojure.tools.namespace.reload$track_reload invoke "reload.clj" 52]
[clojure.lang.AFn applyToHelper "AFn.java" 154]
[clojure.lang.AFn applyTo "AFn.java" 144]
[clojure.lang.Var alterRoot "Var.java" 303]
[clojure.core$alter_var_root doInvoke "core.clj" 5275]
[clojure.lang.RestFn invoke "RestFn.java" 425]
[clojure.tools.namespace.repl$do_refresh invoke "repl.clj" 94]
[clojure.tools.namespace.repl$refresh doInvoke "repl.clj" 142]
[clojure.lang.RestFn invoke "RestFn.java" 397]
[musicali_kids.router$eval24589 invoke "form-init7869666229440604966.clj" 47]
[clojure.lang.Compiler eval "Compiler.java" 6782]
[clojure.lang.Compiler eval "Compiler.java" 6745]
[clojure.core$eval invoke "core.clj" 3081]
[clojure.main$repl$read_eval_print__7099$fn__7102 invoke "main.clj" 240]
[clojure.main$repl$read_eval_print__7099 invoke "main.clj" 240]
[clojure.main$repl$fn__7108 invoke "main.clj" 258]
[clojure.main$repl doInvoke "main.clj" 258]
[clojure.lang.RestFn invoke "RestFn.java" 1523]
[clojure.tools.nrepl.middleware.interruptible_eval$evaluate$fn__981 invoke "interruptible_eval.clj" 87]
[clojure.lang.AFn applyToHelper "AFn.java" 152]
[clojure.lang.AFn applyTo "AFn.java" 144]
[clojure.core$apply invoke "core.clj" 630]
[clojure.core$with_bindings_STAR_ doInvoke "core.clj" 1868]
[clojure.lang.RestFn invoke "RestFn.java" 425]
[clojure.tools.nrepl.middleware.interruptible_eval$evaluate invoke "interruptible_eval.clj" 85]
[clojure.tools.nrepl.middleware.interruptible_eval$interruptible_eval$fn__1026$fn__1029 invoke "interruptible_eval.clj" 222]
[clojure.tools.nrepl.middleware.interruptible_eval$run_next$fn__1021 invoke "interruptible_eval.clj" 190]
[clojure.lang.AFn run "AFn.java" 22]
[java.util.concurrent.ThreadPoolExecutor runWorker "ThreadPoolExecutor.java" 1142]
[java.util.concurrent.ThreadPoolExecutor$Worker run "ThreadPoolExecutor.java" 617]
[java.lang.Thread run "Thread.java" 745]]}
I have the same symptoms as post 1.
Ok, I got further along. If I don't declare a :main in my leiningen project, I am able to run cider-refresh successfully.
I'm currently using the workaround described in: http://stackoverflow.com/a/29993203/894091
I added
:repl-options {:init-ns user}to myproject.clj
Adding a :main to your project.clj will enable AOT compilation and thus break clojure.tools.namespace/refresh. I worked around this by declaring my main in the :uberjar profile.
IIRC I've seen this happen without AOT set. I'll double check tomorrow just
to be sure.
Ashton Kemerling
On Wed, Jul 13, 2016 at 4:50 AM, Joe Snikeris [email protected]
wrote:
Adding a :main to your project.clj will enable AOT compilation and thus
break clojure.tools.namespace/refresh. I worked around this by declaring my
main in the :uberjar profile.—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/clojure-emacs/cider/issues/1144#issuecomment-232309490,
or mute the thread
https://github.com/notifications/unsubscribe/AAMKIZVpa-xAUFNZWqzQeiwWAT41b1Ksks5qVLTugaJpZM4FHgc1
.
It's happening to me without AOT as well. I can refresh in lein repl no problem, but CIDER never works.
It was an issue with :aot for me. Then disabling that for the moment, lein clean, and restarting repl in terminal and cider in emacs got it going again. Thanks for the pointers. I'll go the uberjar profile route.
Most helpful comment
It was an issue with
:aotfor me. Then disabling that for the moment, lein clean, and restarting repl in terminal and cider in emacs got it going again. Thanks for the pointers. I'll go the uberjar profile route.