I’m trying to update our in-house module to work with 8.0. It doesn’t appear to require that many changes and in fact it works just fine. However, when I restart the server with our module installed it won’t get past the “STARTING” screen. It just hangs and never completes.
We are running this on a linux machine and I haven’t been able to get any feedback on what may be happening. Does anyone know where I can find the server logs? If not, do you have any suggestions?
logs directory wherever Ignition is installed you’ll find one or more wrapper.log files.
It may also be useful to get a thread dump while it’s stuck like this.
You can find Ignition’s pid using
jps and then get the thread dump doing something like
jstack > ~/thread-dump.txt
I have looked all through the installed ignition directory and cannot find anything resembling a log file. Can you be more specific about where in the folder hierarchy it is typically kept? I honestly can’t find it.
If you used the installer instead of zip files it’s probably in
Awesome! There it is! I’ll attach it here but I’m looking through it now.
wrapper.log (1.0 MB)
This looks suspicious:
| E [C.BasicExecutionEngine ] [14:13:40]: One-shot task com.inductiveautomation.ignition.gateway.IgnitionGateway$$Lambda$253/0x0000000100359040@66e89293 threw uncaught exception.
| java.lang.NoClassDefFoundError: com/inductiveautomation/reporting/common/api/QueryResults
| at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
| at java.base/java.lang.Class.privateGetDeclaredMethods(Unknown Source)
| at java.base/java.lang.Class.getDeclaredMethods(Unknown Source)
| at com.inductiveautomation.ignition.common.script.ScriptManager.addScriptModule(ScriptManager.java:330)
| at com.inductiveautomation.ignition.common.script.ScriptManager.addScriptModule(ScriptManager.java:306)
| at com.inductiveautomation.apachepoi.GatewayHook.initializeScriptManager(GatewayHook.java:40)
| at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.initializeScriptManager(ModuleManagerImpl.java:589)
| at com.inductiveautomation.ignition.gateway.script.GatewayScriptManagerHolder.createScriptManager(GatewayScriptManagerHolder.java:162)
| at com.inductiveautomation.ignition.gateway.script.GatewayScriptManagerHolder.createDefaultScriptManager(GatewayScriptManagerHolder.java:151)
| at com.inductiveautomation.ignition.gateway.script.GatewayScriptManagerHolder.initializeAfterModuleSetup(GatewayScriptManagerHolder.java:79)
| at com.inductiveautomation.ignition.gateway.IgnitionGateway.startupInternal(IgnitionGateway.java:1022)
| at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl.startup(RedundancyManagerImpl.java:272)
| at com.inductiveautomation.ignition.gateway.IgnitionGateway.initRedundancy(IgnitionGateway.java:664)
| at com.inductiveautomation.ignition.gateway.IgnitionGateway.lambda$initInternal$0(IgnitionGateway.java:602)
| at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:518)
| at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
| at java.base/java.util.concurrent.FutureTask.run(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)
side note: you shouldn’t be using
com.inductiveautomation in your package names.
It looks like I have some missing library resources. Think this could be related? Where would I find those underlined in red items since they don’t seem to come up in a Maven search?
-SNAPSHOT from all your Ignition SDK dependency versions. Just use
8.0.1. It doesn’t matter that you can’t find source and javadoc jars though.
Also make sure that your module indicates it depends on the reporting module and that you’re using the updated reporting module id:
Where would I look to make sure it is using the correct module id? Can’t seem to find it.
In the configuration section for the ignition maven plugin in the pom.xml of your build project.
That was it! Man I never would’ve figured that out!
Do you have any suggested resources that could teach me details like this? I already know about https://docs.inductiveautomation.com/display/SE/Introduction but it doesn’t seem to cover specifics.
SDK documentation is pretty out of date at this point. The examples are a good source of truth: https://github.com/inductiveautomation/ignition-sdk-examples
Other than that, feel free to ask questions here in the forum.