[BUG] java.util.concurrent.TimeoutException running system.tag.readBlocking

v8.3.3

I’m trying to read 92,907 tagpaths with system.tag.readBlocking (i’ve read tonnes more than this in earlier versions ok) from the script console through a standard tag provider, but i’m getting this exception after the default timeout period, 45s:

Java Traceback:
Traceback (most recent call last):
  File "<input>", line 66, in <module>
	at java.base/java.util.concurrent.CompletableFuture.timedGet(Unknown Source)

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

	at com.inductiveautomation.ignition.client.script.ClientTagUtilities.readBlockingImpl(ClientTagUtilities.java:204)

	at com.inductiveautomation.ignition.common.script.builtin.AbstractTagUtilities.readBlocking(AbstractTagUtilities.java:565)

	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

	at java.base/java.lang.reflect.Method.invoke(Unknown Source)

java.util.concurrent.TimeoutException: java.util.concurrent.TimeoutException


	at org.python.core.PyException.doRaise(PyException.java:211)

	at org.python.core.Py.makeException(Py.java:1654)

	at org.python.core.Py.makeException(Py.java:1658)

	at org.python.core.Py.makeException(Py.java:1662)

	at org.python.core.Py.makeException(Py.java:1666)

	at org.python.pycode._pyx43.f$0(<input>:83)

	at org.python.pycode._pyx43.call_function(<input>)

	at org.python.core.PyTableCode.call(PyTableCode.java:173)

	at org.python.core.PyCode.call(PyCode.java:18)

	at org.python.core.Py.runCode(Py.java:1703)

	at org.python.core.Py.exec(Py.java:1747)

	at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:277)

	at org.python.util.InteractiveInterpreter.runcode(InteractiveInterpreter.java:130)

	at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleWorker.doInBackground(JythonConsole.java:639)

	at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleWorker.doInBackground(JythonConsole.java:627)

	at java.desktop/javax.swing.SwingWorker$1.call(Unknown Source)

	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)

	at java.desktop/javax.swing.SwingWorker.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)

Traceback (most recent call last):
  File "<input>", line 66, in <module>
	at java.base/java.util.concurrent.CompletableFuture.timedGet(Unknown Source)

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

	at com.inductiveautomation.ignition.client.script.ClientTagUtilities.readBlockingImpl(ClientTagUtilities.java:204)

	at com.inductiveautomation.ignition.common.script.builtin.AbstractTagUtilities.readBlocking(AbstractTagUtilities.java:565)

	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

	at java.base/java.lang.reflect.Method.invoke(Unknown Source)

java.util.concurrent.TimeoutException: java.util.concurrent.TimeoutException

I’ve increased timeout to 10mins and same thing…

I can’t even read 20,000 tagpaths within 120s without it producing that error…

There seem to be some major bugs within 8.3 relating to reading tags via script

Creating a gateway message handler that calls the tag.readBlocking function and returning the result, and calling that with system.util.sendRequest gets around the issue, but obviously more annoying to use

Can you test if this is still an issue in 8.3.5? Can you post the script you are using? What is the persistence setting being used for your tags? What is the breakdown of tag types?

I tested locally on my laptop, and was able to read 153000 tags in under 6 seconds.