Open
Description
Hi there,
I've faced this issue repeatedly. In the past I had worked around it via :jvm-opts ["-Xmx18G"]
, but today I hit it again (long time no see!). I could try setting an even higher bound, but I guess a GH issue will be more useful.
The error is:
- When I cljr-rename-symbol, through natural usage,
- I get the attached stacktrace printed to Emacs'
*Messages*
Fetching symbol occurrences...
Error in nrepl-refactor: java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at java.util.Arrays.copyOf (Arrays.java:3332)
java.lang.AbstractStringBuilder.ensureCapacityInternal (AbstractStringBuilder.java:124)
java.lang.AbstractStringBuilder.append (AbstractStringBuilder.java:448)
java.lang.StringBuffer.append (StringBuffer.java:270)
java.io.StringWriter.write (StringWriter.java:101)
clojure.core$fn__7283.invokeStatic (core_print.clj:159)
clojure.core/fn (core_print.clj:158)
clojure.lang.MultiFn.invoke (MultiFn.java:234)
clojure.core$pr_on.invokeStatic (core.clj:3674)
clojure.core$pr_on.invoke (core.clj:3668)
clojure.core$print_prefix_map$fn__7317.invoke (core_print.clj:233)
clojure.core$print_sequential.invokeStatic (core_print.clj:66)
clojure.core$print_prefix_map.invokeStatic (core_print.clj:229)
clojure.core$print_map.invokeStatic (core_print.clj:238)
clojure.core$fn__7344.invokeStatic (core_print.clj:266)
clojure.core/fn (core_print.clj:263)
clojure.lang.MultiFn.invoke (MultiFn.java:234)
clojure.core$pr_on.invokeStatic (core.clj:3674)
clojure.core$pr_on.invoke (core.clj:3668)
clojure.core$print_prefix_map$fn__7317.invoke (core_print.clj:233)
clojure.core$print_sequential.invokeStatic (core_print.clj:66)
clojure.core$print_prefix_map.invokeStatic (core_print.clj:229)
clojure.core$print_map.invokeStatic (core_print.clj:238)
clojure.core$fn__7344.invokeStatic (core_print.clj:266)
clojure.core/fn (core_print.clj:263)
clojure.lang.MultiFn.invoke (MultiFn.java:234)
clojure.core$pr_on.invokeStatic (core.clj:3674)
clojure.core$pr_on.invoke (core.clj:3668)
clojure.core$print_prefix_map$fn__7317.invoke (core_print.clj:233)
clojure.core$print_sequential.invokeStatic (core_print.clj:66)
clojure.core$print_prefix_map.invokeStatic (core_print.clj:229)
clojure.core$print_map.invokeStatic (core_print.clj:238)
Interestingly, I can reproduce the error via the repl, skipping the middleware.
(refactor-nrepl.find.find-symbol/find-symbol {:file "/path/to/file/page.clj",
:ns "some.ns"
:name "handler"
:line 43
:column 6
:ignore-errors false})
...and further playing at the repl, I could find the exact expression at fault:
refactor-nrepl/src/refactor_nrepl/find/find_symbol.clj
Lines 138 to 140 in bb27d13
I can run for example
(->> (core/dirs-on-classpath)
(mapcat (partial core/find-in-dir (some-fn core/clj-file? core/cljc-file?)))
(mapcat (partial find-symbol-in-file "clojure.core/+" false))
count)
And it will reliably OOM.
Let me know if I can help you reproduce the error again. Perhaps you have it easy by setting a deliberately small -Xmx
.
Victor
Metadata
Metadata
Assignees
Labels
No labels