@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)