Fork me on GitHub
#graphql
<
2022-08-22
>
defa14:08:25

Every now an then I get a java.lang.OutOfMemoryError in lacinia-pedestal which is reportet like this [ERROR] io.pedestal.http.impl.servlet-interceptor - {:msg "error-ring-response triggered",… then tons of log message and I’m not exactly sure, why. More details in the replies…

defa14:08:28

I’m running an older version of lacinia, though. Here is the stack trace

clojure.lang.ExceptionInfo: java.lang.OutOfMemoryError in Interceptor :com.walmartlabs.lacinia.pedestal/json-response - Java heap space
	at io.pedestal.interceptor.chain$throwable__GT_ex_info.invokeStatic(chain.clj:35)
	at io.pedestal.interceptor.chain$throwable__GT_ex_info.invoke(chain.clj:32)
	at io.pedestal.interceptor.chain$try_f.invokeStatic(chain.clj:57)
	at io.pedestal.interceptor.chain$try_f.invoke(chain.clj:44)
	at io.pedestal.interceptor.chain$leave_all_with_binding.invokeStatic(chain.clj:254)
	at io.pedestal.interceptor.chain$leave_all_with_binding.invoke(chain.clj:237)
	at io.pedestal.interceptor.chain$leave_all$fn__10875.invoke(chain.clj:268)
	at clojure.lang.AFn.applyToHelper(AFn.java:152)
	at clojure.lang.AFn.applyTo(AFn.java:144)
	at clojure.core$apply.invokeStatic(core.clj:667)
	at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1977)
	at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1977)
	at clojure.lang.RestFn.invoke(RestFn.java:425)
	at io.pedestal.interceptor.chain$leave_all.invokeStatic(chain.clj:266)
	at io.pedestal.interceptor.chain$leave_all.invoke(chain.clj:260)
	at io.pedestal.interceptor.chain$execute.invokeStatic(chain.clj:379)
	at io.pedestal.interceptor.chain$execute.invoke(chain.clj:352)
	at io.pedestal.interceptor.chain$execute.invokeStatic(chain.clj:389)
	at io.pedestal.interceptor.chain$execute.invoke(chain.clj:352)
	at io.pedestal.http.impl.servlet_interceptor$interceptor_service_fn$fn__16124.invoke(servlet_interceptor.clj:351)
	at io.pedestal.http.servlet.FnServlet.service(servlet.clj:28)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:400)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:645)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:392)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.OutOfMemoryError: Java heap space
	at java.base/java.util.Arrays.copyOf(Arrays.java:3745)
	at java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:172)
	at java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:686)
	at java.base/java.lang.StringBuffer.append(StringBuffer.java:414)
	at java.base/java.io.StringWriter.write(StringWriter.java:99)
	at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._flushBuffer(WriterBasedJsonGenerator.java:1994)
	at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._writeString(WriterBasedJsonGenerator.java:1021)
	at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator._writeFieldName(WriterBasedJsonGenerator.java:187)
	at com.fasterxml.jackson.core.json.WriterBasedJsonGenerator.writeFieldName(WriterBasedJsonGenerator.java:152)
	at cheshire.generate$generate.invokeStatic(generate.clj:122)
	at cheshire.generate$generate.invoke(generate.clj:116)
	at cheshire.generate$generate.invokeStatic(generate.clj:122)
	at cheshire.generate$generate.invoke(generate.clj:116)
	at cheshire.generate$generate.invokeStatic(generate.clj:130)
	at cheshire.generate$generate.invoke(generate.clj:116)
	at cheshire.generate$generate.invokeStatic(generate.clj:122)
	at cheshire.generate$generate.invoke(generate.clj:116)
	at cheshire.generate$generate.invokeStatic(generate.clj:130)
	at cheshire.generate$generate.invoke(generate.clj:116)
	at cheshire.generate$generate.invokeStatic(generate.clj:122)
	at cheshire.generate$generate.invoke(generate.clj:116)
	at cheshire.generate$generate.invokeStatic(generate.clj:130)
	at cheshire.generate$generate.invoke(generate.clj:116)
	at cheshire.generate$generate.invokeStatic(generate.clj:122)
	at cheshire.generate$generate.invoke(generate.clj:116)
	at cheshire.generate$generate.invokeStatic(generate.clj:130)
	at cheshire.generate$generate.invoke(generate.clj:116)
	at cheshire.generate$generate.invokeStatic(generate.clj:122)
	at cheshire.generate$generate.invoke(generate.clj:116)
	at cheshire.generate$generate.invokeStatic(generate.clj:122)
	at cheshire.generate$generate.invoke(generate.clj:116)
	at cheshire.generate$generate.invokeStatic(generate.clj:122)

Lennart Buit14:08:23

cheshire (using jackson) is lacinia’s way to generate a json string for your result

Lennart Buit14:08:39

so your output is large enough to OOM

Lennart Buit14:08:04

For the reporting, there is some default error logging in l-p, although that … should not trigger