GET Metadata java.lang.stackoverflow error

Hi! I am running Metabase 0.35.3 in K8s and our main database is an s3 bucket to which we connect with the Athena JDBC driver (https://github.com/dacort/metabase-athena-driver) .

I noticed that not all fields were available for filtering (and some are IDs, so they should be) so I wanted to edit the metadata of some of these tables. As it happens, I am getting a stackoverflow error everytime, which makes it impossible.

The log is basically a repetition of
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”

Thousand times. Any idea how to avoid this recursion?

Full Log:

08-20 07:30:35 e[1mERROR middleware.loge[0m :: e[31mGET /api/database/4/metadata 500 4.3 mins (5 DB calls)
{:message nil,
:type java.lang.StackOverflowError,
:stacktrace
[“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
“clojure.lang.RT.seq(RT.java:535)”
“clojure.core$seq__5402.invokeStatic(core.clj:137)”
“clojure.core$drop$step__5925.invoke(core.clj:2927)”
“clojure.core$drop$fn__5928.invoke(core.clj:2932)”
“clojure.lang.LazySeq.sval(LazySeq.java:42)”
“clojure.lang.LazySeq.seq(LazySeq.java:51)”
[…]}
e[0m

Log shortened due to forum limitations

Hi @rcavalcanti
Not sure what’s going on, but it’s spending way too long on that request - almost 4½ minutes.
I would recommend updating to 0.36.4 and the newest Athena driver too.
Make sure you have backups before upgrading.

1 Like