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.

❌ It crashes on :

  • pytango==10.0.2 with Python 3.13, 3.12, and 3.9
  • pytango==10.0.1rc1 with Python 3.12 and 3.9

✔️ It works on :

  • 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 int argument (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 TestStr from a "Test Device" panel still makes the server crash.
  • However, calling the DevString command of the provided TangoTest.exe Device Server works, so it seems not to be an issue with cppTango 10.0.2.
Assignee Loading
Time tracking Loading