Downgraded ignition from 8.1.30 to 8.1.25 and perspective module stopped working

i had to downgrade from 8.1.30 to 8.1.25
I did uninstall first and then installed 8.1.25
Now i have issues with perspective module
Any idea how to resolve it?
"""

"""

That stack trace says 8.1.2… not .25

2 Likes

sorry my mistake i will update this in few mins

Include wrapper log file if it’s still broken.

Downgrading is generally not guaranteed to work unless you have a backup from the version you are downgrading to that will be restored.

hi Kevin sorry for my delay
i restarted perspective module and atached below the wrapper log
Would you please advise what actually happens during downgrade? I do have a backup from the version 8.1.25 and do understand that backups from 8.1.30 might not be compatible with 8.1.25

  1. i did uninstall of the version 8.1.30 which preserves the projects inside but i thought it replaces all modules from the new with the modules from 8.1.25 - is wiping whole ignition folder more bullet proof method if projects have already been backed up?
    2 Any chance you say a few words about nature of "Unable to load hook class " problem?
    3 should antivirus be disabled during installing gateway?
INFO   | jvm 1    | 2023/07/20 15:36:51 | I [g.ModuleManager               ] [14:36:51]: Restarting module "com.inductiveautomation.perspective" 
INFO   | jvm 1    | 2023/07/20 15:36:51 | E [g.ModuleManager               ] [14:36:51]: Error loading hook classes for module "com.inductiveautomation.perspective". 
INFO   | jvm 1    | 2023/07/20 15:36:51 | com.inductiveautomation.ignition.common.modules.ModuleLoadException: Unable to load hook class "com.inductiveautomation.perspective.gateway.GatewayHook" for module "com.inductiveautomation.perspective".
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl$LoadedModule.loadHook(ModuleManagerImpl.java:2368)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl$LoadedModule.load(ModuleManagerImpl.java:2041)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.startupModule(ModuleManagerImpl.java:1227)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl$4.call(ModuleManagerImpl.java:887)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.executeModuleOperation(ModuleManagerImpl.java:953)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.restartModuleInternal(ModuleManagerImpl.java:867)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.restartModule(ModuleManagerImpl.java:859)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at com.inductiveautomation.ignition.gateway.web.pages.config.ModulePage$RestartAction.execute(ModulePage.java:575)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at com.inductiveautomation.ignition.gateway.web.components.ConfirmationPanel$1.onClick(ConfirmationPanel.java:50)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.apache.wicket.markup.html.link.Link.onLinkClicked(Link.java:190)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:216)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:243)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:236)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:890)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:261)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:218)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1383)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1305)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at com.inductiveautomation.catapult.handlers.RemoteHostNameLookupHandler.handle(RemoteHostNameLookupHandler.java:121)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:301)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.Server.handle(Server.java:563)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:416)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:385)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:272)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:140)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:934)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1078)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at java.base/java.lang.Thread.run(Unknown Source)
INFO   | jvm 1    | 2023/07/20 15:36:51 | Caused by: java.lang.ClassNotFoundException: com.inductiveautomation.perspective.gateway.GatewayHook
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at java.base/java.net.URLClassLoader.findClass(Unknown Source)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at com.inductiveautomation.ignition.gateway.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:37)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at com.inductiveautomation.ignition.gateway.modules.ModuleClassLoader.loadClass(ModuleClassLoader.java:85)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl$LoadedModule.loadHook(ModuleManagerImpl.java:2340)
INFO   | jvm 1    | 2023/07/20 15:36:51 | 	... 64 common frames omitted
INFO   | jvm 1    | 2023/07/20 15:38:03 | I [P.InternalDatabase            ] [14:38:03]: Creating auto-backup of internal database "config.idb"... 
INFO   | jvm 1    | 2023/07/20 15:38:04 | I [P.InternalDatabase            ] [14:38:03]: Created auto-backup of internal database "config.idb" in 107 ms 

I need the full wrapper log, not just the snippet you think is important.

sorry i wiped wrapper as there is a limit what i can paste
shall i restart gateway and paste the full wrapper then?

Yes, restart. Don't paste it, upload the file.

1 Like

wrapper.log (54.6 KB)
Please have a look

Hmm, no idea what's going on there. Maybe something wrong with the Perspective module you have, or maybe something about your backup contents causing an uncaught exception during static initialization...

You'll have to go through support and see if they can reproduce with your backup or something.

edit: make sure you don't have multiple Perspective modules in user-lib/modules or something weird.

2 Any chance you say a few words about nature of "Unable to load hook class " problem?
3 should antivirus be disabled during installing gateway?

Thanks a lot for the feedback - i will try wiping folder clean and start from scratch.
Any chance you comment about antivirus - i guess it should not matter right?
Regarding loading hook class - what is the nature of this problem in general - are modules not replaced during downgrade?

Antivirus shouldn't matter... as long as the files get where they need to be without being modified.

Modules do get replaced. I don't know what's wrong, the Perspective module is failing to start up in a very odd manner, claiming it can't find a class that should definitely be part of the module.

1 Like