Hi all,
Wondering if this is a new issue or if we are not using binary data tags correctly
We were on 4.0.13 (distributor and engine on the main gateway, transmission on the edge), but upgraded to 4.0.17 as part of the 8.1.30 ignition update.
Right after the update, we noticed that Binary Data tags and Byte Array tags could no longer be written to, when doing it it shows [Bad_Failure].
Looking at the logs in ignition, it’s showing the following:
Rolling back to 4.0.13 fixes the issue, so right now that’s what we are doing, we have all our MQTT modules rolled back to 4.0.13, which might not follow the compatibility matrix, but that’s the best solution we have now.
I’ve attached the error message from the wrapper below, I have the full wrapper file as well if that can help.
Cheers to whoever that can help or seen this issue as well
java.lang.NumberFormatException: For input string: "MQTT Engine"
at java.base/java.lang.NumberFormatException.forInputString(Unknown Source)
at java.base/java.lang.Integer.parseInt(Unknown Source)
at java.base/java.lang.Integer.parseInt(Unknown Source)
at com.cirruslink.mqtt.engine.gateway.sparkplug.SparkplugWriteHandler.getArrayValue(SparkplugWriteHandler.java:473)
at com.cirruslink.mqtt.engine.gateway.sparkplug.SparkplugWriteHandler.getMetric(SparkplugWriteHandler.java:375)
at com.cirruslink.mqtt.engine.gateway.sparkplug.SparkplugWriteHandler.write(SparkplugWriteHandler.java:179)
at com.inductiveautomation.ignition.gateway.tags.managed.ManagedTagProviderImpl.processWriteHandler(ManagedTagProviderImpl.java:519)
at com.inductiveautomation.ignition.gateway.tags.managed.ManagedTagProviderImpl$MtpActorManagementFactory$MtpTagActorWrapper.processWrite(ManagedTagProviderImpl.java:1083)
at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.ExecutableTag.write(ExecutableTag.java:533)
at com.inductiveautomation.ignition.gateway.tags.TagProviderImpl.writeAsync(TagProviderImpl.java:648)
at com.inductiveautomation.ignition.gateway.tags.provider.RestrictedTagProvider.writeAsync(RestrictedTagProvider.java:74)
at com.inductiveautomation.ignition.gateway.tags.model.impl.GatewayTagManagerImpl.lambda$writeAsync$15(GatewayTagManagerImpl.java:856)
at com.inductiveautomation.ignition.gateway.util.GroupMapCollate.lambda$groupMapCollateIndexed$5(GroupMapCollate.java:53)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.base/java.util.HashMap$EntrySpliterator.forEachRemaining(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
at com.inductiveautomation.ignition.common.util.Futures.sequence(Futures.java:29)
at com.inductiveautomation.ignition.gateway.util.GroupMapCollate.groupMapCollateIndexed(GroupMapCollate.java:62)
at com.inductiveautomation.ignition.gateway.tags.model.impl.GatewayTagManagerImpl.writeAsync(GatewayTagManagerImpl.java:840)
at com.inductiveautomation.ignition.gateway.tags.actors.factories.value.reference.TagReferenceValueActorFactory$TagReferenceValueActor.processWrite(TagReferenceValueActorFactory.java:212)
at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.ExecutableTag.write(ExecutableTag.java:533)
at com.inductiveautomation.ignition.gateway.tags.TagProviderImpl.writeAsync(TagProviderImpl.java:648)
at com.inductiveautomation.ignition.gateway.tags.model.impl.GatewayTagManagerImpl.lambda$writeAsync$15(GatewayTagManagerImpl.java:856)
at com.inductiveautomation.ignition.gateway.util.GroupMapCollate.lambda$groupMapCollateIndexed$5(GroupMapCollate.java:53)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.base/java.util.HashMap$EntrySpliterator.forEachRemaining(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
at com.inductiveautomation.ignition.common.util.Futures.sequence(Futures.java:29)
at com.inductiveautomation.ignition.gateway.util.GroupMapCollate.groupMapCollateIndexed(GroupMapCollate.java:62)
at com.inductiveautomation.ignition.gateway.tags.model.impl.GatewayTagManagerImpl.writeAsync(GatewayTagManagerImpl.java:840)
at com.inductiveautomation.ignition.gateway.tags.model.ProjectDefaultTagManagerFacade.writeAsync(ProjectDefaultTagManagerFacade.java:277)
at com.inductiveautomation.ignition.gateway.servlets.gateway.functions.TagProviderRpc.write(TagProviderRpc.java:244)
at jdk.internal.reflect.GeneratedMethodAccessor426.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at com.inductiveautomation.ignition.gateway.servlets.gateway.AbstractGatewayFunction.invoke(AbstractGatewayFunction.java:228)
at com.inductiveautomation.ignition.gateway.servlets.Gateway.doPost(Gateway.java:434)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:523)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
at com.inductiveautomation.ignition.gateway.bootstrap.MapServlet.service(MapServlet.java:86)
at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1410)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1384)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1306)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at com.inductiveautomation.catapult.handlers.RemoteHostNameLookupHandler.handle(RemoteHostNameLookupHandler.java:121)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:301)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.Server.handle(Server.java:563)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:416)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:385)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:272)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:140)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)
at java.base/java.lang.Thread.run(Unknown Source)