Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"No ns form found ..." when using boot-reload #103

Open
pandeiro opened this issue Sep 25, 2015 · 11 comments
Open

"No ns form found ..." when using boot-reload #103

pandeiro opened this issue Sep 25, 2015 · 11 comments
Labels

Comments

@pandeiro
Copy link

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.

@Deraen Deraen added the bug label Nov 8, 2015
@Deraen
Copy link
Contributor

Deraen commented Nov 8, 2015

Need more info. I have not seen this.

@Deraen
Copy link
Contributor

Deraen commented Jan 6, 2016

@pandeiro Are you still seeing this? I'm going to close this if there's no more info.

@Deraen Deraen closed this as completed Jan 9, 2016
@wagjo
Copy link

wagjo commented Jan 25, 2016

I'm seeing it too. Exception is:

java.lang.AssertionError: No ns form found in file:/home/wagjo/.boot/cache/tmp/home/proj/p3q/-x24pa9/adzerk/boot_cljs_repl.cljs
          cljs.analyzer$parse_ns$fn__2009.invoke  analyzer.cljc: 2751
             cljs.analyzer$parse_ns.invokeStatic  analyzer.cljc: 2706
                   cljs.analyzer$parse_ns.invoke  analyzer.cljc: 2687
             cljs.analyzer$parse_ns.invokeStatic  analyzer.cljc: 2697
cljs.closure/find-cljs-dependencies/invokeStatic    closure.clj:  691
cljs.closure/add-dependency-sources/invokeStatic    closure.clj:  749
                 cljs.closure/build/invokeStatic    closure.clj: 1892
               cljs.build.api/build/invokeStatic        api.clj:  206
 adzerk.boot-cljs.impl/compile-cljs/invokeStatic       impl.clj:   76
              adzerk.boot-cljs.impl/compile-cljs       impl.clj:   66
                                             ...                     
                 clojure.core/apply/invokeStatic       core.clj:  646
                              clojure.core/apply       core.clj:  641
                           boot.pod/eval-fn-call        pod.clj:  294
                               boot.pod/call-in*        pod.clj:  315
                                             ...                     
                               boot.pod/call-in*        pod.clj:  318
                        adzerk.boot-cljs/compile  boot_cljs.clj:   71
                   adzerk.boot-cljs/compile-1/fn  boot_cljs.clj:  126
             clojure.core/binding-conveyor-fn/fn       core.clj: 1916

Dependencies

   [adzerk/boot-cljs "1.7.228-1" :scope "test"]
   [adzerk/boot-cljs-repl "0.3.0" :scope "test"]
   [adzerk/boot-reload "0.4.4" :scope "test"]

task we're running

  (comp
   (system :sys #'foo.standalone/system :auto-start true)
   (watch)
   (less :source-map true :compression false :inline-javascript true)
   (reload :on-jsload 'foo.app/fig-reload)
   (cljs-repl)
   (cljs :source-map true))

@pandeiro
Copy link
Author

pandeiro commented Feb 3, 2016

@Deraen This issue still exists for us; its infrequency means it's not a big deal, but we still get failed tests now and then because of it. And now it has been seen by @wagjo as well. Not sure what should / can be done, but if there's something else I can do, please let me know.

@Deraen Deraen reopened this Feb 3, 2016
@Deraen
Copy link
Contributor

Deraen commented Feb 3, 2016

I'm yet to see this myself.

A start would be to have a test project where you can reproduce this so that I could try to reproduce this.

@pandeiro
Copy link
Author

pandeiro commented Feb 7, 2016

@wagjo Are you able to reproduce this reliably? How frequently do you see this? It would be great if we could create a sample repo for Juho to look at.

@wagjo
Copy link

wagjo commented Feb 8, 2016

Nope, I only get this error in about 5% of runs.

@mjmeintjes
Copy link

I think I might be getting the same bug - on Travis CI sometimes the build fails after successful run, even if nothing changed. E.g. https://travis-ci.org/mjmeintjes/boot-react-native/builds/109811514 vs https://travis-ci.org/mjmeintjes/boot-react-native/builds/109810642 (same source code, just merged branch).

@Deraen
Copy link
Contributor

Deraen commented Jan 18, 2017

I think there is a chance that recent change in Boot-reload 0.5.0 might have fixed this: adzerk-oss/boot-reload@9f430b2

@Deraen
Copy link
Contributor

Deraen commented May 14, 2017

I have not seen this myself in 5 months and I don't recall anyone at work mentioning this since the change, so I'll presume this was fixed.

@Deraen Deraen closed this as completed May 14, 2017
@Deraen
Copy link
Contributor

Deraen commented May 14, 2017

Except Boot-cljs-repl still uses the old way to inject code to the build: https://github.com/adzerk-oss/boot-cljs-repl/blob/master/src/adzerk/boot_cljs_repl.clj#L168

@Deraen Deraen reopened this May 14, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants