Fixed with Tango 9
[bugs:#646] ZMQ events bug with device name that include TANGO_HOST in the name
Status: closed-fixed
Labels: zmq events
Created: Tue Jan 21, 2014 04:31 PM UTC by Sergi Rubio
Last Updated: Mon Feb 24, 2014 08:27 AM UTC
Owner: nobody
This bug affects only ZMQ and happened when accessing from ct64suse11 a device running in ct64suse121; being both machines Tango-8.1.2 and having killed notifd before starting the devices.
When running same device/client with notifd active the bug doesn't reproduce.
export TANGO_HOST=controls02:10000
ipython
In [1]: import PyTango
In [2]: dp = PyTango.DeviceProxy('controls01:10000/sys/tg_test/01')
In [3]: def printf(*args_):print(args_)
...:
In [4]: eid = dp.subscribe_event('state',PyTango.EventType.CHANGE_EVENT,printf,stateless=True)
First event is received:
(EventData(attr_name = 'tango://controls01.cells.es:10000/sys/tg_test/01/state', attr_value = DeviceAttribute(data_format = PyTango._PyTango.AttrDataFormat.SCALAR, dim_x = 1, dim_y = 0, has_failed = False, is_empty = False, name = 'State', nb_read = 1, nb_written = 0, quality = PyTango._PyTango.AttrQuality.ATTR_VALID, r_dimension = AttributeDimension(dim_x = 1, dim_y = 0), time = TimeVal(tv_nsec = 0, tv_sec = 1390321122, tv_usec = 407624), type = PyTango._PyTango.CmdArgType.DevState, value = PyTango._PyTango.DevState.FAULT, w_dim_x = 0, w_dim_y = 0, w_dimension = AttributeDimension(dim_x = 0, dim_y = 0), w_value = None), device = TangoTest(sys/tg_test/01), err = False, errors = (), event = 'change', reception_date = TimeVal(tv_nsec = 0, tv_sec = 1390321125, tv_usec = 648294)),)
BUG! Next events received fail to show anything:
In [6]: Tue Jan 21 17:18:52 2014: Event tango://controls01.cells.es:10000/sys/tg_test/01/state.change not found in event callback map !!!
Tue Jan 21 17:18:52 2014: Event tango://controls01.cells.es:10000/sys/tg_test/01/state.change not found in event callback map !!!
This problem doesn't happen when running notifd or avoiding TANGO_HOST in event name:
export TANGO_HOST=controls01:10000
ipython
In [1]: import PyTango
In [3]: dp = PyTango.DeviceProxy('sys/tg_test/01')
In [4]: def printf(*args_):print(args_)
...:
In [5]: eid = dp.subscribe_event('state',PyTango.EventType.CHANGE_EVENT,printf,stateless=True)
(EventData(attr_name = 'tango://controls01.cells.es:10000/sys/tg_test/01/state', attr_value = DeviceAttribute(data_format = PyTango._PyTango.AttrDataFormat.SCALAR, dim_x = 1, dim_y = 0, has_failed = False, is_empty = False, name = 'State', nb_read = 1, nb_written = 0, quality = PyTango._PyTango.AttrQuality.ATTR_VALID, r_dimension = AttributeDimension(dim_x = 1, dim_y = 0), time = TimeVal(tv_nsec = 0, tv_sec = 1390321200, tv_usec = 408004), type = PyTango._PyTango.CmdArgType.DevState, value = PyTango._PyTango.DevState.RUNNING, w_dim_x = 0, w_dim_y = 0, w_dimension = AttributeDimension(dim_x = 0, dim_y = 0), w_value = None), device = TangoTest(sys/tg_test/01), err = False, errors = (), event = 'change', reception_date = TimeVal(tv_nsec = 0, tv_sec = 1390321203, tv_usec = 600440)),)
In [6]: (EventData(attr_name = 'tango://controls01.cells.es:10000/sys/tg_test/01/state', attr_value = DeviceAttribute(data_format = PyTango._PyTango.AttrDataFormat.SCALAR, dim_x = 1, dim_y = 0, has_failed = False, is_empty = False, name = 'State', nb_read = 1, nb_written = 0, quality = PyTango._PyTango.AttrQuality.ATTR_VALID, r_dimension = AttributeDimension(dim_x = 1, dim_y = 0), time = TimeVal(tv_nsec = 0, tv_sec = 1390321206, tv_usec = 408349), type = PyTango._PyTango.CmdArgType.DevState, value = PyTango._PyTango.DevState.FAULT, w_dim_x = 0, w_dim_y = 0, w_dimension = AttributeDimension(dim_x = 0, dim_y = 0), w_value = None), device = TangoTest(sys/tg_test/01), err = False, errors = (), event = 'change', reception_date = TimeVal(tv_nsec = 0, tv_sec = 1390321207, tv_usec = 866107)),)
Sent from sourceforge.net because Tango-cs...@lists.sf.net is subscribed to https://sourceforge.net/p/tango-cs/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/tango-cs/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list.