Here's a namesake question for this site.
Why does this piece of code throw a StackOverflow exception in Clojure?
(require [clojure.core.cache :as cache])
(def C (atom (cache/fifo-cache-factory {} :threshold 1E7)))
(doseq [i (range 1 1E6)]
(swap! C cache/miss i i))
And I get the following. I didn't do any concat operations in my code. This is very reproducible. I'm using clojure 1.7 on Java 8.
Caused by: java.lang.StackOverflowError
at clojure.lang.RT.seq(RT.java:507)
at clojure.core$seq__4128.invoke(core.clj:137)
at clojure.core$concat$fn__4215.invoke(core.clj:691)
at clojure.lang.LazySeq.sval(LazySeq.java:40)
at clojure.lang.LazySeq.seq(LazySeq.java:49)
at clojure.lang.RT.seq(RT.java:507)
at clojure.core$seq__4128.invoke(core.clj:137)
at clojure.core$concat$fn__4215.invoke(core.clj:691)
at clojure.lang.LazySeq.sval(LazySeq.java:40)
at clojure.lang.LazySeq.seq(LazySeq.java:49)
at clojure.lang.RT.seq(RT.java:507)
...........
...........
at clojure.core$concat$fn__4215.invoke(core.clj:691)
at clojure.lang.LazySeq.sval(LazySeq.java:40)
at clojure.lang.LazySeq.seq(LazySeq.java:49)
at clojure.lang.RT.seq(RT.java:507)
at clojure.core$seq__4128.invoke(core.clj:137)
at clojure.core$concat$fn__4215.invoke(core.clj:691)
at clojure.lang.LazySeq.sval(LazySeq.java:40)
at clojure.lang.LazySeq.seq(LazySeq.java:49)
at clojure.lang.RT.seq(RT.java:507)
at clojure.core$seq__4128.invoke(core.clj:137)
at clojure.core$concat$fn__4215.invoke(core.clj:691)
at clojure.lang.LazySeq.sval(LazySeq.java:40)
at clojure.lang.LazySeq.seq(LazySeq.java:49)
at clojure.lang.RT.seq(RT.java:507)
at clojure.core$seq__4128.invoke(core.clj:137)
at clojure.core$concat$fn__4215.invoke(core.clj:691)
at clojure.lang.LazySeq.sval(LazySeq.java:40)
at clojure.lang.LazySeq.seq(LazySeq.java:49)
at clojure.lang.RT.seq(RT.java:507)
at clojure.core$seq__4128.invoke(core.clj:137)
at clojure.core$concat$fn__4215.invoke(core.clj:691)
at clojure.lang.LazySeq.sval(LazySeq.java:40)