When I go to /graphs in the i2p console, the graphs don't load. I get error 500 in the browser console and this error on the logs page: [le Jetty-923] rg.eclipse.jetty.server.Server: : javax.servlet.ServletException: java.lang.InternalError: java.lang.reflect.InvocationTargetException
I am using the docker container version 2.1.0-1 and everything else works apart from these graphs.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
it should be right under the "InvocationTargetException" on the logs page. Look in all three boxes - critical logs, router logs, and wrapper logs
if you don't see it, add org.eclipse.jetty.server.Server=WARN to the override section on /configlogging , click save changes, then try to trigger the error again.
you may only get the error once though? I think we may remember that it failed and not try again? If so you might have to restart to get the error again.
and was able to reproduce what OP described. So I set the logging as you suggested and got this with it:
Jan 21, 2023, 12:40:15 PM WARN [ole Jetty-66] rg.eclipse.jetty.server.Server: javax.servlet.ServletException: java.lang.InternalError: java.lang.reflect.InvocationTargetException at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:657) at net.i2p.router.web.jsp.viewstat_jsp._jspService(viewstat_jsp.java:234) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:848) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1780) at net.i2p.servlet.filters.XSSFilter.doFilter(XSSFilter.java:30) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:513) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) at net.i2p.router.web.LocaleWebAppHandler.handle(LocaleWebAppHandler.java:109) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213) at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:493) at net.i2p.router.web.HostCheckHandler.handle(HostCheckHandler.java:118) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) at org.eclipse.jetty.server.Server.handle(Server.java:539) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: java.lang.InternalError: java.lang.reflect.InvocationTargetException at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:87) at java.base/java.security.AccessController.doPrivileged(AccessController.java:318) at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:75) at java.desktop/sun.font.SunFontManager.getInstance(SunFontManager.java:248) at java.desktop/sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:266) at java.desktop/java.awt.Font.getStringBounds(Font.java:2643) at java.desktop/java.awt.Font.getStringBounds(Font.java:2553) at java.desktop/java.awt.Font.getStringBounds(Font.java:2587) at org.rrd4j.graph.ImageWorker.getStringWidth(ImageWorker.java:159) at org.rrd4j.graph.RrdGraph.getFontCharWidth(RrdGraph.java:722) at org.rrd4j.graph.RrdGraph.initializeLimits(RrdGraph.java:431) at org.rrd4j.graph.RrdGraph.createGraph(RrdGraph.java:130) at org.rrd4j.graph.RrdGraph.<init>(RrdGraph.java:63) at net.i2p.router.web.SummaryRenderer.render(SummaryRenderer.java:350) at net.i2p.router.web.SummaryListener.renderPng(SummaryListener.java:253) at net.i2p.router.web.SummaryListener.renderPng(SummaryListener.java:237) at net.i2p.router.web.StatSummarizer.locked_renderPng(StatSummarizer.java:337) at net.i2p.router.web.StatSummarizer.renderPng(StatSummarizer.java:300) at net.i2p.router.web.jsp.viewstat_jsp._jspService(viewstat_jsp.java:201) ... 34 more Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480) at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:85) ... 52 more Caused by: java.lang.NullPointerException: Cannot load from short array because "sun.awt.FontConfiguration.head" is null at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262) at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:224) at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:106) at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:706) at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:358) at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:315) at java.base/java.security.AccessController.doPrivileged(AccessController.java:318) at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:315) at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35) at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56) ... 58 more Jan 21, 2023, 12:40:15 PM ↑↑↑ 2 similar messages omitted ↑↑↑
you may only get the error once though?
If emptying the log and going to the graphs page again there is no new log generated here, indeed.
Wrapper version: None >> on Debian installs I get a version displayed here
Built By: unknown >> I didn't do this, the Docker image is from DockerHub or whatever. On Debian installs I get "undefined" instead of "unknown", however.
@idk I don't know anything about Docker or where or how it gets built, but could you add build.built-by=Docker to override.properties as a part of the build process?
Part of our continuing effort to easily identify what people are running.