Designer Rendered Non-Responsive After Selecting Directory In Image Management

I recently uploaded 220 .jpg files to my project, and ever since the upload completed I’ve been unable to access the directory I uploaded the files to while in Image Management.

I noticed that Azul’s CPU usage climbs to excessive levels when I attempt to open the directory in Image Management, and the Designer becomes non-responsive at that same time.

Before selecting the relevant directory:

After selecting the directory:

I did notice an error in the logs during the upload, but the upload continued to count through the files during the upload, so I didn’t think too much of the error.


at com.inductiveautomation.ignition.gateway.localdb.sqlite.SingleConnectionDatasource.getConnection(SingleConnectionDatasource.java:58)

at com.inductiveautomation.ignition.gateway.localdb.sqlite.SQLiteDBManager$AutoBackupDaemon.run(SQLiteDBManager.java:671)

at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$TrackedTask.run(BasicExecutionEngine.java:565)

at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)

at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)

at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.base/java.lang.Thread.run(Unknown Source)

From wrapper.log:

INFO   | jvm 1    | 2019/03/17 09:15:19 | W [o.e.j.s.HttpChannel           ] [16:15:19]: /system/gateway 
INFO   | jvm 1    | 2019/03/17 09:15:19 | simpleorm.utils.SException$Jdbc: Opening com.inductiveautomation.ignition.gateway.localdb.CountingDataSource@638d3b2c
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at simpleorm.sessionjdbc.SSessionJdbc.innerOpen(SSessionJdbc.java:113)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at com.inductiveautomation.ignition.gateway.localdb.persistence.PersistenceSession.initialize(PersistenceSession.java:31)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at com.inductiveautomation.ignition.gateway.localdb.PersistenceInterfaceImpl.getSession(PersistenceInterfaceImpl.java:62)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at com.inductiveautomation.ignition.gateway.localdb.PersistenceInterfaceImpl.getSession(PersistenceInterfaceImpl.java:44)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.getImage(ImageManagerImpl.java:241)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.ensureFolderExists(ImageManagerImpl.java:229)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.insertImage(ImageManagerImpl.java:184)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at com.inductiveautomation.ignition.gateway.images.ImageManagerImpl.insertImage(ImageManagerImpl.java:178)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at com.inductiveautomation.ignition.gateway.servlets.Gateway.runUploadImage(Gateway.java:1236)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at com.inductiveautomation.ignition.gateway.servlets.Gateway.doPost(Gateway.java:461)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at com.inductiveautomation.ignition.gateway.bootstrap.MapServlet.service(MapServlet.java:86)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:61)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.Server.handle(Server.java:530)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:347)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:256)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:382)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:708)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626)
INFO   | jvm 1    | 2019/03/17 09:15:19 | 	at java.base/java.lang.Thread.run(Unknown Source)

Sounds more like a memory limit than a CPU limit.

Did it finish?

Those images are, unfortunately, stored in the internal DB for whatever historical reasons.

Whatever size those 220 JPGs are is now being inserted into the internal DB, which is probably really slow, and is preventing other parts of the system from accessing the DB while doing so.

Instead, put the files you want to access in the webserver/webapps/main folder where Ignition is installed, and then you can access them at their URL on the gateway:

http://localhost:8088/main/example.jpg

On 8 (can’t remember if on earlier versions), you can omit “main”: http://localhost:8088/example.jpg

1 Like