Where is the www root please?

Hi everyone,
maybe I am too blind but I was not able to find the information where in OH2 the www root is located. I am seeing issues in the log that OH fails to create some png files (for graphs), so I would like to manually check if I could delete some orphaned files or so.
But where are they? Without knowledge of the distinctive filename I am lost. I have searched the web and this forum, but maybe I just used the wrong keywords…Any help would be appreciated

2018-03-14 19:54:09.969 [WARN ] [thome.ui.internal.chart.ChartServlet] - Chart generation failed: null
2018-03-14 19:54:10.743 [WARN ] [thome.ui.internal.chart.ChartServlet] - Chart generation failed: null
2018-03-14 19:54:10.845 [WARN ] [thome.ui.internal.chart.ChartServlet] - Chart generation failed: null
2018-03-14 19:54:10.935 [WARN ] [thome.ui.internal.chart.ChartServlet] - Chart generation failed: null
  • Platform information:
    • Hardware: rpi 3b
    • OS: raspbian image (most recent)
    • openHAB version: 2.2

OH doesn’t have a www root. All of its native UIs get served out of the servlets and files stored in the .kar files that make up the program itself.

However, it does have a static html root folder that users can place html files and images and such that will become made available to the OH UIs. You will find that in /etc/openhab2/html. If OH is trying to write files somewhere though, it will be somewhere in /ver/lib/openhab2. Make sure that all files and folders in both of these locations are owned by openhab:openhab.

Please post the error.

Thanks Rich, speedy answer als always :slight_smile:

I am not sure how much of the openhab.log makes sense to post in addition to the events.log snippet?

I am experincing the problem that one graph (temperature basement) is regularly not shown. The graph is not being drawn, this happens already quite a while. Sometimes a reboot cured it for some days, sometimes it went away all by itself after some time. But the error is still coming back from time to time.

Usually only the WEEK view is affected, example attached
graphs.pdf (310.8 KB)

Are you running on a SBC with an SD card? If so I wouldn’t be surprised if your SD card were wearing out.

I do. And it is a fresh card, bought it just a month ago :slight_smile: This SD Card topic cost me already 4 cards to rule that out as a problem. So many problems I came across in PH2 have been expected to be explained by defective cards, so I bought new cards and installed OH2 many times.

As this is always affecting the same graph, while the rest works flawless, I am not sure this is the case this time.

Not necessarily but I do agree, it is unlikely to be the case. Note though that wear and tear on an SD card is not the only thing that can cause weird behaviors like this. It is also dangerous to lose power on ANY linux machine. This can cause corruption of all or part of a file system.

Only the first few lines of the exception lines need to be posted. Use How to use code fences

Not sure where “the” exeption starts. Soon as I am switching to the graphs, the log kind of “explodes”. So here are the “first few lines” (the log extends by app. 500 lines or so)

'2018-03-14 20:38:29.889 [WARN ] [se.jetty.util.SharedBlockingCallback] - Blocker not complete Blocker@972dfe{null}
2018-03-14 20:38:29.971 [WARN ] [thome.ui.internal.chart.ChartServlet] - Chart generation failed: null
2018-03-14 20:38:30.050 [WARN ] [thome.ui.internal.chart.ChartServlet] - Chart generation failed: null
2018-03-14 20:38:40.180 [WARN ] [eclipse.jetty.servlet.ServletHandler] - /chart
javax.imageio.IIOException: I/O error writing PNG file!
	at com.sun.imageio.plugins.png.PNGImageWriter.write(PNGImageWriter.java:1168) [?:?]
	at javax.imageio.ImageWriter.write(ImageWriter.java:615) [?:?]
	at javax.imageio.ImageIO.doWrite(ImageIO.java:1612) [?:?]
	at javax.imageio.ImageIO.write(ImageIO.java:1492) [?:?]
	at org.eclipse.smarthome.ui.internal.chart.ChartServlet.doGet(ChartServlet.java:302) [155:org.eclipse.smarthome.ui:0.10.0.b1]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) [31:javax.servlet-api:3.1.0]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [31:javax.servlet-api:3.1.0]
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:848) [88:org.eclipse.jetty.servlet:9.3.22.v20171030]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:584) [88:org.eclipse.jetty.servlet:9.3.22.v20171030]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) [191:org.ops4j.pax.web.pax-web-jetty:6.0.7]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [85:org.eclipse.jetty.security:9.3.22.v20171030]
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:284) [191:org.ops4j.pax.web.pax-web-jetty:6.0.7]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) [88:org.eclipse.jetty.servlet:9.3.22.v20171030]
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) [191:org.ops4j.pax.web.pax-web-jetty:6.0.7]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.Server.handle(Server.java:534) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) [79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) [79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [90:org.eclipse.jetty.util:9.3.22.v20171030]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [90:org.eclipse.jetty.util:9.3.22.v20171030]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [90:org.eclipse.jetty.util:9.3.22.v20171030]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [90:org.eclipse.jetty.util:9.3.22.v20171030]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [90:org.eclipse.jetty.util:9.3.22.v20171030]
	at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: org.eclipse.jetty.io.EofException
	at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:199) ~[79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:420) ~[79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:313) ~[79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:147) ~[79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:739) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241) ~[90:org.eclipse.jetty.util:9.3.22.v20171030]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[90:org.eclipse.jetty.util:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:519) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:750) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:801) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:235) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:219) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpOutput.flush(HttpOutput.java:355) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at javax.imageio.stream.FileCacheImageOutputStream.flushBefore(FileCacheImageOutputStream.java:258) ~[?:?]
	at com.sun.imageio.plugins.png.IDATOutputStream.finishChunk(PNGImageWriter.java:196) ~[?:?]
	at com.sun.imageio.plugins.png.IDATOutputStream.finish(PNGImageWriter.java:254) ~[?:?]
	at com.sun.imageio.plugins.png.PNGImageWriter.write_IDAT(PNGImageWriter.java:945) ~[?:?]
	at com.sun.imageio.plugins.png.PNGImageWriter.write(PNGImageWriter.java:1158) ~[?:?]
	... 32 more
Caused by: java.io.IOException: Datenübergabe unterbrochen (broken pipe)
	at sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[?:?]
	at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51) ~[?:?]
	at sun.nio.ch.IOUtil.write(IOUtil.java:148) ~[?:?]
	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:504) ~[?:?]
	at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:179) ~[79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:420) ~[79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:313) ~[79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:147) ~[79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:739) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241) ~[90:org.eclipse.jetty.util:9.3.22.v20171030]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[90:org.eclipse.jetty.util:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:519) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:750) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:801) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:235) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:219) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpOutput.flush(HttpOutput.java:355) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at javax.imageio.stream.FileCacheImageOutputStream.flushBefore(FileCacheImageOutputStream.java:258) ~[?:?]
	at com.sun.imageio.plugins.png.IDATOutputStream.finishChunk(PNGImageWriter.java:196) ~[?:?]
	at com.sun.imageio.plugins.png.IDATOutputStream.finish(PNGImageWriter.java:254) ~[?:?]
	at com.sun.imageio.plugins.png.PNGImageWriter.write_IDAT(PNGImageWriter.java:945) ~[?:?]
	at com.sun.imageio.plugins.png.PNGImageWriter.write(PNGImageWriter.java:1158) ~[?:?]
	... 32 more
2018-03-14 20:38:40.207 [WARN ] [eclipse.jetty.servlet.ServletHandler] - /chart
javax.imageio.IIOException: I/O error writing PNG file!
	at com.sun.imageio.plugins.png.PNGImageWriter.write(PNGImageWriter.java:1168) [?:?]
	at javax.imageio.ImageWriter.write(ImageWriter.java:615) [?:?]
	at javax.imageio.ImageIO.doWrite(ImageIO.java:1612) [?:?]
	at javax.imageio.ImageIO.write(ImageIO.java:1492) [?:?]
	at org.eclipse.smarthome.ui.internal.chart.ChartServlet.doGet(ChartServlet.java:302) [155:org.eclipse.smarthome.ui:0.10.0.b1]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) [31:javax.servlet-api:3.1.0]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [31:javax.servlet-api:3.1.0]
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:848) [88:org.eclipse.jetty.servlet:9.3.22.v20171030]
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:584) [88:org.eclipse.jetty.servlet:9.3.22.v20171030]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) [191:org.ops4j.pax.web.pax-web-jetty:6.0.7]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [85:org.eclipse.jetty.security:9.3.22.v20171030]
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:284) [191:org.ops4j.pax.web.pax-web-jetty:6.0.7]
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) [88:org.eclipse.jetty.servlet:9.3.22.v20171030]
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) [191:org.ops4j.pax.web.pax-web-jetty:6.0.7]
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.Server.handle(Server.java:534) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) [87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) [79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) [79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [90:org.eclipse.jetty.util:9.3.22.v20171030]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [90:org.eclipse.jetty.util:9.3.22.v20171030]
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [90:org.eclipse.jetty.util:9.3.22.v20171030]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [90:org.eclipse.jetty.util:9.3.22.v20171030]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [90:org.eclipse.jetty.util:9.3.22.v20171030]
	at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: org.eclipse.jetty.io.EofException
	at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:199) ~[79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:420) ~[79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:313) ~[79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:147) ~[79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:739) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241) ~[90:org.eclipse.jetty.util:9.3.22.v20171030]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[90:org.eclipse.jetty.util:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:519) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:750) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:801) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:235) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:219) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpOutput.flush(HttpOutput.java:355) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at javax.imageio.stream.FileCacheImageOutputStream.flushBefore(FileCacheImageOutputStream.java:258) ~[?:?]
	at com.sun.imageio.plugins.png.IDATOutputStream.finishChunk(PNGImageWriter.java:196) ~[?:?]
	at com.sun.imageio.plugins.png.IDATOutputStream.finish(PNGImageWriter.java:254) ~[?:?]
	at com.sun.imageio.plugins.png.PNGImageWriter.write_IDAT(PNGImageWriter.java:945) ~[?:?]
	at com.sun.imageio.plugins.png.PNGImageWriter.write(PNGImageWriter.java:1158) ~[?:?]
	... 32 more
Caused by: java.io.IOException: Datenübergabe unterbrochen (broken pipe)
	at sun.nio.ch.FileDispatcherImpl.writev0(Native Method) ~[?:?]
	at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51) ~[?:?]
	at sun.nio.ch.IOUtil.write(IOUtil.java:148) ~[?:?]
	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:504) ~[?:?]
	at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:179) ~[79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:420) ~[79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:313) ~[79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:147) ~[79:org.eclipse.jetty.io:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:739) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241) ~[90:org.eclipse.jetty.util:9.3.22.v20171030]
	at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224) ~[90:org.eclipse.jetty.util:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:519) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:750) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:801) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:235) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:219) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at org.eclipse.jetty.server.HttpOutput.flush(HttpOutput.java:355) ~[87:org.eclipse.jetty.server:9.3.22.v20171030]
	at javax.imageio.stream.FileCacheImageOutputStream.flushBefore(FileCacheImageOutputStream.java:258) ~[?:?]
	at com.sun.imageio.plugins.png.IDATOutputStream.finishChunk(PNGImageWriter.java:196) ~[?:?]
	at com.sun.imageio.plugins.png.IDATOutputStream.finish(PNGImageWriter.java:254) ~[?:?]
	at com.sun.imageio.plugins.png.PNGImageWriter.write_IDAT(PNGImageWriter.java:945) ~[?:?]
	at com.sun.imageio.plugins.png.PNGImageWriter.write(PNGImageWriter.java:1158) ~[?:?]
	... 32 more
2018-03-14 20:38:40.347 [WARN ] [org.eclipse.jetty.server.HttpChannel] - //192.168.1.50:8080/chart?items=Humidity_Vorratskeller&period=W&random=188
javax.servlet.ServletException: javax.imageio.IIOException: I/O error writing PNG file!
	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:88) [191:org.ops4j.pax.web.pax-web-jetty:6.0.7]
'

Broken Pipe…I/O Error…seems like stuff to have fun with

Oh, and in regards to losing power: The rpi is attached to a UPS and is handled like a raw egg…I know how sensible a linux system can be to unwanted power outages or reboots :slight_smile:

All I can think of is to double check the ownership of all the files and folders in /etc/openhab2 and /var/lib/openhab2.

But the broken pipe being the root exception points at the problem being with your file system and nothing that OH has control over.

Ok, thanks a lot for the hint where to dig deeper.

All permissions are correct. As only (mainly) the weekly view of this particular graph is affected, I would guess this is merely a problem with the generation of the fresh png, or maybe an orphaned old file that gets stuck. Is there a temp directory where the server is collecting all generated pics for the client?

The fact that it happens only some of the time really points to this being a file system problem to me or a timing issue.

If it were me, I’d rebuild the machine.

I’m sure there is a folder where this stuff gets written, probably in /var/lib/openhab2 somewhere. I don’t know which one though. I’d guess either cache or tmp. But this error has never been reported on this forum and since the root error is a broken pipe which comes from the operating system so I don’t think there is anything from the OH side that would be able to fix this. Something is going on with the file system that is allowing OH to start writing the file but then it gets cut off (hence the broken pipe).

Ok, so I guess I am going to rebuild it for the 10th time or so…(not kidding). Every time I am done, something brakes…either immediately or after a while. This has been the case for several SD Cards, several RPIs, several different PC I used for flashing and several versions of the raspbian image. I’m coming to the conclusion that there must be something personal between OH2 and me…if I only knew what :slight_smile:

Thanks for your time and efforts, greatly appreciated as always!

Make sure to run a chkdisk on that drive. I wouldn’t be surprised if there is a bad sector or something like that.

Are you using openHABian? It isn’t just for RPis. You can run the script on any Linux. Look for the manual instructions in the docs.

That greatly eases the effort in installing/reinstalling and long-term maintenance.

Other approaches are to use Docker containers. That lets you isolate the OH system from your base OS so that you don’t have to worry about libraries or versions and such because it all comes together. It does have some limitations though (e.g. exec binding isn’t useful).

Ansible is a good way to set up a server, though it takes a good deal of work up front. You basically write scripts that do all the installation and configuration for you so setting up a new machine is as simple as running a single command.

Personally, I run OH on a VM running Ubuntu 17.? (I forget) in a Docker container. I mount the conf and userdata folders that get mapped into the container from my NAS (running from another VM). And I set the whole thing up using Ansible.