[BUG-13990] Ignition 8.0.2-rc1 - bug when expression use tag function in alarms bindings

@awalker could you please fill a ticket for this bug.

With Ignition 8.0.2-rc1 or the 8.0.3-SNAPSHOT (b2019060102), when I try to edit an alarm on a tag inside an udt with only one udt instance created for this udt, it takes about 30 seconds before the popup is closed when I click on “APPLY”

I have an Alarm label expression binding :

tag(concat("[default]",{itemPath},".tooltip"))

and alarm label expression binding :

{repereEqt}

repereEqt is a an udt string parameter

Note : When I have no instance, there is no delay.

I have an error popup : Error saving tag changes
Detail

ExecutionException: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Read timed out
	caused by GatewayException: Read timed out
	caused by SocketTimeoutException: Read timed out

Ignition v8.0.2-rc1 (b2019052016)
Java: Azul Systems, Inc. 11.0.3

If I active the logger alarm.Execution, I have the following error on the gateway :

BoundProperties 03Jun2019 09:14:26 Error executing bound property.

com.inductiveautomation.ignition.common.expressions.ExpressionException: Timeout exception when reading tag value

at com.inductiveautomation.ignition.common.expressions.functions.TagFunction.execute(TagFunction.java:125)

at com.inductiveautomation.ignition.common.expressions.FunctionExpression.execute(FunctionExpression.java:66)

at com.inductiveautomation.ignition.common.expressions.DefaultFunctionFactory$ConcatFunction.execute(DefaultFunctionFactory.java:367)

at com.inductiveautomation.ignition.common.expressions.FunctionExpression.execute(FunctionExpression.java:66)

at com.inductiveautomation.ignition.gateway.alarming.evaluation.BoundPropEvalPropertySet$BoundValue.evaluate(BoundPropEvalPropertySet.java:234)

at com.inductiveautomation.ignition.gateway.alarming.evaluation.BoundPropEvalPropertySet$BoundValue.evalAndGet(BoundPropEvalPropertySet.java:261)

at com.inductiveautomation.ignition.gateway.alarming.evaluation.BoundPropEvalPropertySet.getValues(BoundPropEvalPropertySet.java:186)

at com.inductiveautomation.ignition.common.config.AbstractExtendedPropertySet.getValues(AbstractExtendedPropertySet.java:145)

at com.inductiveautomation.ignition.common.config.MutablePropertyValueSource.merge(MutablePropertyValueSource.java:16)

at com.inductiveautomation.ignition.common.config.BasicPropertySet.(BasicPropertySet.java:47)

at com.inductiveautomation.ignition.common.config.BasicPropertySet.(BasicPropertySet.java:42)

at com.inductiveautomation.ignition.gateway.alarming.evaluation.Alarm$AlarmPropertyModel.snapshotData(Alarm.java:1145)

at com.inductiveautomation.ignition.gateway.alarming.evaluation.Alarm.captureEventData(Alarm.java:698)

at com.inductiveautomation.ignition.gateway.alarming.evaluation.Alarm.finishTransitionEvent(Alarm.java:751)

at com.inductiveautomation.ignition.gateway.alarming.evaluation.Alarm.initTransitionEvent(Alarm.java:723)

at com.inductiveautomation.ignition.gateway.alarming.evaluation.Alarm.evaluate(Alarm.java:539)

at com.inductiveautomation.ignition.gateway.alarming.AlarmManagerImpl$AlarmEvaluatorImpl.evaluate(AlarmManagerImpl.java:571)

at com.inductiveautomation.ignition.gateway.tags.actors.factories.alarming.AlarmingActor.processValue(AlarmingActor.java:153)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.ExecutableTag.valueChanged(ExecutableTag.java:279)

at com.inductiveautomation.ignition.gateway.tags.actors.factories.value.AbstractValueGeneratingActor.fireValueChange(AbstractValueGeneratingActor.java:41)

at com.inductiveautomation.ignition.gateway.tags.actors.factories.value.AbstractValueGeneratingActor.setListener(AbstractValueGeneratingActor.java:30)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.ExecutableTag.configureActors(ExecutableTag.java:614)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.ExecutableTag.applyPropertyChangesToTag(ExecutableTag.java:426)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.BasicTagDefinition.managePropertyChanges(BasicTagDefinition.java:629)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.BasicTagDefinition.lambda$new$0(BasicTagDefinition.java:95)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.TagPropertyModel.dispatchPropertiesChanged(TagPropertyModel.java:81)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.TagPropertyModel.onPropertiesChanged(TagPropertyModel.java:42)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.BasicTagDefinition.onInheritedPropertiesChanged(BasicTagDefinition.java:604)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.complex.AbstractTopLevelUdtTag.onSuperPropertiesChanged(AbstractTopLevelUdtTag.java:191)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.complex.TypesFolder$TypeDefinitionNode.lambda$publishPropertiesChanged$1(TypesFolder.java:660)

at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)

at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)

at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)

at java.base/java.util.HashMap$KeySpliterator.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.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)

at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)

at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)

at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.complex.TypesFolder$TypeDefinitionNode.publishPropertiesChanged(TypesFolder.java:660)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.complex.AbstractComplexTagDefinitionNode.fireMemberPropertiesChanged(AbstractComplexTagDefinitionNode.java:128)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.complex.UdtFolderNode.fireMemberPropertiesChanged(UdtFolderNode.java:56)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.BasicTagDefinition.managePropertyChanges(BasicTagDefinition.java:635)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.BasicTagDefinition.lambda$new$0(BasicTagDefinition.java:95)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.TagPropertyModel.dispatchPropertiesChanged(TagPropertyModel.java:81)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.TagPropertyModel.onPropertiesChanged(TagPropertyModel.java:42)

at com.inductiveautomation.ignition.gateway.tags.runtime.nodes.BasicTagDefinition.configureTag(BasicTagDefinition.java:540)

at com.inductiveautomation.ignition.gateway.tags.runtime.TagEvaluationManagerImpl.moveOrEditNode(TagEvaluationManagerImpl.java:618)

at com.inductiveautomation.ignition.gateway.tags.runtime.TagEvaluationManagerImpl.processEditInternal(TagEvaluationManagerImpl.java:306)

at com.inductiveautomation.ignition.gateway.tags.runtime.TagEvaluationManagerImpl.processEdit(TagEvaluationManagerImpl.java:238)

at com.inductiveautomation.ignition.gateway.tags.TagProviderImpl.saveTagConfigInternal(TagProviderImpl.java:604)

at com.inductiveautomation.ignition.gateway.tags.TagProviderImpl.lambda$saveTagConfigsAsync$9(TagProviderImpl.java:564)

at com.inductiveautomation.ignition.gateway.tags.TagProviderImpl.lambda$exec$2(TagProviderImpl.java:345)

at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.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)

Caused by: java.util.concurrent.TimeoutException: null

at java.base/java.util.concurrent.CompletableFuture.timedGet(Unknown Source)

at java.base/java.util.concurrent.CompletableFuture.get(Unknown Source)

at com.inductiveautomation.ignition.common.expressions.functions.TagFunction.execute(TagFunction.java:120)

... 57 common frames omitted

if I replace the expression binding with

concat("[default]",{itemPath},".tooltip")

instead of

tag(concat("[default]",{itemPath},".tooltip"))

There is no error.

It seems that the issue is a timeout when evaluating expression in alarms with the tag function !

udt.json (850 Bytes)

tags.json (1.1 KB)

Hi @mazeyrat,

I talked with one of the developers and we think that this is also the same underlying issue as the bug mentioned in your other posts: [BUG-13990] Ignition 8.0.2-2019-05-09 - designer freeze when creating an UDT instance and Ignition 8.0.2-rc1 - udt instance are very long to create

We’ll update you when its been fixed.

1 Like

thanks, I stay tuned to test the fix as soon as possible.

@mazeyrat, the mentioned ticket has been fixed in the latest build. Please let us know if you are still seeing this issue.