Open
Description
A very rare (maybe 5% or less of the time) bug I am hitting when using boot-cljs, boot-reload and multiple cljs.edn
builds is the "No ns form found ...". It appears that the file that boot-reload is injecting prior to cljs compilation is empty when the (cljs ...)
task tries to compile it:
Adding :require adzerk.boot-reload to main.cljs.edn...
Compiling ClojureScript...
? main.js
? tests.js
java.util.concurrent.ExecutionException: clojure.lang.ExceptionInfo: failed compiling file:/.boot/cache/tmp/app/1/-hru27v/boot/cljs/main12754.cljs {:file #object[java.io.File 0x48a25888 "/.boot/cache/tmp/app/1/-hru27v/boot/cljs/main12754.cljs"]}
clojure.lang.ExceptionInfo: failed compiling file:/.boot/cache/tmp/app/1/-hru27v/boot/cljs/main12754.cljs
data: {#object[clojure.lang.Keyword 0x2df8c34f ":file"] #object[java.io.File 0x48a25888 "/.boot/cache/tmp/app/1/-hru27v/boot/cljs/main12754.cljs"]}
clojure.lang.ExceptionInfo: No ns form found in file:/.boot/cache/tmp/app/1/7o2s6s/adzerk/boot_reload.cljs at line 1 /.boot/cache/tmp/app/1/-hru27v/boot/cljs/main12754.cljs
data: {#object[clojure.lang.Keyword 0x2df8c34f ":file"] "/.boot/cache/tmp/app/1/-hru27v/boot/cljs/main12754.cljs", #object[clojure.lang.Keyword 0x26a0e21e ":line"] 1, #object[clojure.lang.Keyword 0x5164ac91 ":column"] 1, #object[clojure.lang.Keyword 0x43da0d0f ":tag"] #object[clojure.lang.Keyword 0x25b13eda ":cljs/analysis-error"]}
java.lang.AssertionError: No ns form found in file:/.boot/cache/tmp/app/1/7o2s6s/adzerk/boot_reload.cljs
cljs.analyzer$parse_ns$fn__2136.invoke analyzer.cljc: 2706
cljs.analyzer$parse_ns.invoke analyzer.cljc: 2660
cljs.analyzer$parse_ns.invoke analyzer.cljc: 2651
cljs.analyzer$macro_autoload_ns_QMARK_.invoke analyzer.cljc: 1782
cljs.analyzer$desugar_ns_specs$to_macro_specs__1835$fn__1838.invoke analyzer.cljc: 1817
clojure.core/filter/fn core.clj: 2686
...
clojure.core/seq core.clj: 137
clojure.core/map/fn core.clj: 2616
...
clojure.core/seq core.clj: 137
cljs.analyzer$desugar_ns_specs.invoke analyzer.cljc: 1825
cljs.analyzer$eval1863$fn__1865.invoke analyzer.cljc: 1874
...
cljs.analyzer$analyze_seq_STAR_.invoke analyzer.cljc: 2368
cljs.analyzer$analyze_seq_STAR__wrap.invoke analyzer.cljc: 2373
cljs.analyzer$analyze_seq.invoke analyzer.cljc: 2394
cljs.analyzer$analyze_form.invoke analyzer.cljc: 2503
cljs.analyzer$analyze_STAR_.invoke analyzer.cljc: 2550
cljs.analyzer$analyze.invoke analyzer.cljc: 2566
cljs.compiler$compile_file_STAR_$fn__3342.invoke compiler.cljc: 1125
cljs.compiler$with_core_cljs.invoke compiler.cljc: 1053
cljs.compiler$compile_file_STAR_.invoke compiler.cljc: 1076
cljs.compiler$compile_file$fn__3383.invoke compiler.cljc: 1237
cljs.compiler$compile_file.invoke compiler.cljc: 1216
cljs.compiler$compile_root.invoke compiler.cljc: 1291
cljs.closure/compile-dir closure.clj: 438
cljs.closure/eval3772/fn closure.clj: 478
cljs.closure/eval3724/fn/G closure.clj: 383
cljs.closure/eval3785/fn closure.clj: 492
cljs.closure/eval3724/fn/G closure.clj: 383
cljs.build.api/inputs/reify/compile-input api.clj: 182
clojure.core/map/fn core.clj: 2624
...
clojure.core/seq core.clj: 137
clojure.core/apply core.clj: 630
clojure.core/mapcat core.clj: 2660
...
cljs.build.api/inputs/reify/-compile api.clj: 186
cljs.closure/build closure.clj: 1671
cljs.build.api/build api.clj: 219
adzerk.boot-cljs.impl/compile-cljs/fn impl.clj: 63
adzerk.boot-cljs.impl/compile-cljs impl.clj: 62
...
clojure.core/apply core.clj: 630
boot.pod/eval-fn-call pod.clj: 184
boot.pod/call-in* pod.clj: 191
...
boot.pod/call-in* pod.clj: 194
adzerk.boot-cljs/compile boot_cljs.clj: 75
adzerk.boot-cljs/compile-1/fn boot_cljs.clj: 138
clojure.core/binding-conveyor-fn/fn core.clj: 1916
Could this be related to some race condition with the cljs
task? The low reproducibility suggests something like that to me, prior to going into the impl.cljs
and inspecting.