When I define a simple server like shown below and call the method from a DeviceProxy, I get this assertion failure:
python2.7: /root/PyTango-8.1.5/src/boost/cpp/server/command.cpp:220: void dev_var_x_array_deleter__(PyObject*) [with long int type = 16l; PyObject = _object]: Assertion `false' failed.
from PyTango.server import Device, DeviceMeta, command, run
class Test(Device):
metaclass = DeviceMeta
@command(dtype_in='DevVarStringArray', dtype_out='DevVarStringArray')
def Test(self, inarr):
return []
if name == "main":
run([Test])
PyTango 8.1.5 (8, 1, 5, 'final', 0)
PyTango compiled with:
Python : 2.7.9
Numpy : 1.9.1
Tango : 8.1.2
Boost : 1.56.0
PyTango runtime is:
Python : 2.7.9
Numpy : 1.9.1
Tango : 8.1.2
Boost : 0.0.0
PyTango running on:
('Linux', 'georg', '3.18.0-gentoo', '#1 SMP PREEMPT Fri Dec 12 23:20:07 CET 2014', 'x86_64', 'Intel(R) Core(TM) i5-4670 CPU @ 3.40GHz')
Just tested: this also occurs for DevVarCharArray. When compiling PyTango with DISABLE_PYTANGO_NUMPY this crash does not happen.
I think it is related to #701
Confirm. I mark it as duplicate of #701.
Thanks for reporting.