[bug-14612]system.tag.getConfiguration fails on memory dataset tag if dataset is defined

In script console on version 8.02:

print system.tag.getConfiguration('[default]New Tag')

Gives this result as expected for a new memory tag of type dataset that doesn’t yet have any data (not even defined columns):

[{u'dataType': DataSet, u'path': [default]New Tag, u'tagType': AtomicTag, u'name': u'New Tag', u'valueSource': u'memory'}]

However, as soon as the dataset value exists (even just one column defined with no rows), it fails with this error:

Java Traceback:
Traceback (most recent call last):
  File "<buffer>", line 1, in <module>
java.lang.IllegalArgumentException: Cannot create PyString with non-byte value

	at org.python.core.PyString.<init>(PyString.java:57)

	at org.python.core.PyString.<init>(PyString.java:70)

	at org.python.core.PyString.<init>(PyString.java:74)

	at org.python.core.PyObject.__repr__(PyObject.java:238)

	at org.python.core.PyList.list_toString(PyList.java:512)

	at org.python.core.PyList.toString(PyList.java:498)

	at org.python.core.PyObject.__repr__(PyObject.java:238)

	at org.python.core.PyObject.__str__(PyObject.java:271)

	at org.python.core.StdoutWrapper.printToFile(StdoutWrapper.java:108)

	at org.python.core.StdoutWrapper.print(StdoutWrapper.java:186)

	at org.python.core.StdoutWrapper.println(StdoutWrapper.java:272)

	at org.python.core.Py.println(Py.java:1858)

	at org.python.pycode._pyx755.f$0(<buffer>:1)

	at org.python.pycode._pyx755.call_function(<buffer>)

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

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

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

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

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

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

	at org.python.util.InteractiveInterpreter.runsource(InteractiveInterpreter.java:116)

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

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

	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)

java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: Cannot create PyString with non-byte value


	at org.python.core.Py.JavaError(Py.java:552)

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

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

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

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

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

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

	at org.python.util.InteractiveInterpreter.runsource(InteractiveInterpreter.java:116)

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

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

	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)

Caused by: java.lang.IllegalArgumentException: Cannot create PyString with non-byte value

	at org.python.core.PyString.<init>(PyString.java:57)

	at org.python.core.PyString.<init>(PyString.java:70)

	at org.python.core.PyString.<init>(PyString.java:74)

	at org.python.core.PyObject.__repr__(PyObject.java:238)

	at org.python.core.PyList.list_toString(PyList.java:512)

	at org.python.core.PyList.toString(PyList.java:498)

	at org.python.core.PyObject.__repr__(PyObject.java:238)

	at org.python.core.PyObject.__str__(PyObject.java:271)

	at org.python.core.StdoutWrapper.printToFile(StdoutWrapper.java:108)

	at org.python.core.StdoutWrapper.print(StdoutWrapper.java:186)

	at org.python.core.StdoutWrapper.println(StdoutWrapper.java:272)

	at org.python.core.Py.println(Py.java:1858)

	at org.python.pycode._pyx755.f$0(<buffer>:1)

	at org.python.pycode._pyx755.call_function(<buffer>)

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

	... 14 more

Traceback (most recent call last):
  File "<buffer>", line 1, in <module>
java.lang.IllegalArgumentException: Cannot create PyString with non-byte value

	at org.python.core.PyString.<init>(PyString.java:57)

	at org.python.core.PyString.<init>(PyString.java:70)

	at org.python.core.PyString.<init>(PyString.java:74)

	at org.python.core.PyObject.__repr__(PyObject.java:238)

	at org.python.core.PyList.list_toString(PyList.java:512)

	at org.python.core.PyList.toString(PyList.java:498)

	at org.python.core.PyObject.__repr__(PyObject.java:238)

	at org.python.core.PyObject.__str__(PyObject.java:271)

	at org.python.core.StdoutWrapper.printToFile(StdoutWrapper.java:108)

	at org.python.core.StdoutWrapper.print(StdoutWrapper.java:186)

	at org.python.core.StdoutWrapper.println(StdoutWrapper.java:272)

	at org.python.core.Py.println(Py.java:1858)

	at org.python.pycode._pyx755.f$0(<buffer>:1)

	at org.python.pycode._pyx755.call_function(<buffer>)

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

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

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

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

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

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

	at org.python.util.InteractiveInterpreter.runsource(InteractiveInterpreter.java:116)

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

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

	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)

java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: Cannot create PyString with non-byte value

This looks like the same root cause as a bug I ran into about a week ago. I have a patch up against our internal Jython build, which will then make it into another build - possibly 8.0.4, but it may slip to 8.0.5 at this point.

1 Like

The fix for this made it into 8.0.6 - that’s what I get for trying to estimate a timeline :slight_smile:

2 Likes