Server crash when command with DevString arg is called (>=10.0.1)
On Windows 10 (64bits), since PyTango 10.0.1, calling a Device Server command with a DevString argument makes it crash abruptly (segfault ?).
Example code
from tango.server import Device, command, run
class MyDevice(Device):
@command
def TestStr(self, arg: str):
print("OK")
if __name__ == "__main__":
run((MyDevice,))
I tested this and it crashes when TestStr is called by a DeviceProxy.
- pytango==10.0.2 with Python 3.13, 3.12, and 3.9
- pytango==10.0.1rc1 with Python 3.12 and 3.9
- pytango==10.0.0 with Python 3.12 and 3.9
I tested other syntaxes as well (e.g. @command(dtype_in='DevString')) and even the original API syntax with the DeviceClass, still crashes.
However, I observed no issues with :
- read/write DevString attributes
- commands that return a DevString
- commands that take a
intargument (DevLong64) - commands that take a
tuple[str]argument (DevVarStringArray)
I also tested with and without a database which makes no difference.
On one of my machines, the Tango distribution for Windows is installed (tango-10.0.2_v143_win64.exe) :
- Calling
TestStrfrom a "Test Device" panel still makes the server crash. - However, calling the
DevStringcommand of the provided TangoTest.exe Device Server works, so it seems not to be an issue with cppTango 10.0.2.