Closed sam-pitch closed 2 years ago
I'm using a third-party library https://github.com/thheller/shadow-cljs/blob/master/src/main/shadow/build/closure/JsInspector.java#L180
My jvm-opts are "-Xms1G" "-Xmx3G"
. If I increase my max memory it works fine.
Stack trace:
RuntimeException: Exception parsing "/home/foo/bar/node_modules/highlight.js/lib/languages/isbl.js"
com.google.javascript.jscomp.parsing.ParserRunner.parse (ParserRunner.java:148)
com.google.javascript.jscomp.JsAst.parse (JsAst.java:155)
com.google.javascript.jscomp.JsAst.getAstRoot (JsAst.java:62)
shadow.build.closure.JsInspector.getFileInfo (JsInspector.java:180)
shadow.build.closure.JsInspector.getFileInfoMap (JsInspector.java:194)
shadow.build.npm/get-file-info*/fn--12294 (npm.clj:452)
shadow.build.npm/get-file-info* (npm.clj:451)
shadow.build.npm/get-file-info* (npm.clj:401)
shadow.build.npm/get-file-info (npm.clj:512)
shadow.build.npm/get-file-info (npm.clj:509)
shadow.build.npm/find-resource-in-package (npm.clj:726)
shadow.build.npm/find-resource-in-package (npm.clj:686)
shadow.build.npm/find-resource (npm.clj:776)
shadow.build.npm/find-resource (npm.clj:739)
shadow.build.resolve/find-npm-resource (resolve.clj:122)
shadow.build.resolve/find-npm-resource (resolve.clj:93)
shadow.build.resolve/eval14425/fn--14428 (resolve.clj:262)
clojure.lang.MultiFn.invoke (MultiFn.java:244)
shadow.build.resolve/find-resource-for-string (resolve.clj:80)
shadow.build.resolve/find-resource-for-string (resolve.clj:69)
shadow.build.resolve/resolve-string-require (resolve.clj:453)
shadow.build.resolve/resolve-string-require (resolve.clj:436)
shadow.build.resolve/resolve-require (resolve.clj:669)
shadow.build.resolve/resolve-require (resolve.clj:662)
shadow.build.resolve/resolve-deps/fn--14374 (resolve.clj:51)
clojure.lang.PersistentVector.reduce (PersistentVector.java:343)
clojure.core/reduce (core.clj:6885)
clojure.core/reduce (core.clj:6868)
shadow.cljs.util/reduce-> (util.clj:45)
shadow.cljs.util/reduce-> (util.clj:44)
shadow.build.resolve/resolve-deps (resolve.clj:49)
shadow.build.resolve/resolve-deps (resolve.clj:33)
shadow.build.resolve/resolve-string-require (resolve.clj:478)
shadow.build.resolve/resolve-string-require (resolve.clj:436)
shadow.build.resolve/resolve-require (resolve.clj:669)
shadow.build.resolve/resolve-require (resolve.clj:662)
shadow.build.resolve/resolve-deps/fn--14374 (resolve.clj:51)
clojure.lang.PersistentVector.reduce (PersistentVector.java:343)
clojure.core/reduce (core.clj:6885)
clojure.core/reduce (core.clj:6868)
shadow.cljs.util/reduce-> (util.clj:45)
shadow.cljs.util/reduce-> (util.clj:44)
shadow.build.resolve/resolve-deps (resolve.clj:49)
shadow.build.resolve/resolve-deps (resolve.clj:33)
shadow.build.resolve/resolve-symbol-require (resolve.clj:656)
shadow.build.resolve/resolve-symbol-require (resolve.clj:615)
shadow.build.resolve/resolve-require (resolve.clj:666)
shadow.build.resolve/resolve-require (resolve.clj:662)
shadow.build.resolve/resolve-deps/fn--14374 (resolve.clj:51)
clojure.lang.PersistentVector.reduce (PersistentVector.java:343)
clojure.core/reduce (core.clj:6885)
clojure.core/reduce (core.clj:6868)
shadow.cljs.util/reduce-> (util.clj:45)
shadow.cljs.util/reduce-> (util.clj:44)
shadow.build.resolve/resolve-deps (resolve.clj:49)
shadow.build.resolve/resolve-deps (resolve.clj:33)
shadow.build.resolve/resolve-symbol-require (resolve.clj:656)
shadow.build.resolve/resolve-symbol-require (resolve.clj:615)
shadow.build.resolve/resolve-require (resolve.clj:666)
shadow.build.resolve/resolve-require (resolve.clj:662)
shadow.build.resolve/resolve-deps/fn--14374 (resolve.clj:51)
clojure.lang.PersistentVector.reduce (PersistentVector.java:343)
clojure.core/reduce (core.clj:6885)
clojure.core/reduce (core.clj:6868)
shadow.cljs.util/reduce-> (util.clj:45)
shadow.cljs.util/reduce-> (util.clj:44)
shadow.build.resolve/resolve-deps (resolve.clj:49)
shadow.build.resolve/resolve-deps (resolve.clj:33)
shadow.build.resolve/resolve-symbol-require (resolve.clj:656)
shadow.build.resolve/resolve-symbol-require (resolve.clj:615)
shadow.build.resolve/resolve-require (resolve.clj:666)
shadow.build.resolve/resolve-require (resolve.clj:662)
shadow.build.resolve/resolve-entry (resolve.clj:676)
shadow.build.resolve/resolve-entry (resolve.clj:675)
clojure.lang.PersistentVector.reduce (PersistentVector.java:343)
clojure.core/reduce (core.clj:6885)
clojure.core/reduce (core.clj:6868)
shadow.cljs.util/reduce-> (util.clj:45)
shadow.cljs.util/reduce-> (util.clj:44)
shadow.build.resolve/resolve-entries (resolve.clj:690)
Increasing the default thread stack for the Java process (using java -Xss16m
) or contributing a fix to the code you are using to launch a custom thread with a larger stack would be the appropriate solution. On my machine the default stack size is 1m but if memory serves it varies depending on whether it is a 32bit or 64bit VM, the VM variant, and other factors.
java -XX:+PrintFlagsFinal -version | grep ThreadStackSize
may provide you with the current default stack size (it does with the version of Java installed on my system).
The file in question can be found at https://github.com/highlightjs/highlight.js/blob/main/src/languages/isbl.js
Problem experienced using this newer version of the compiler
com.google.javascript/closure-compiler-unshaded v20220502
No problem experienced using this older version of the compiler
com.google.javascript/closure-compiler-unshaded v20220301
Looks quite similar to this previously opened issue https://github.com/google/closure-compiler/issues/1661
Stack-trace