change_event freezed when removing and recreating an attribut
I would like to submit a change_event problem and a (temporary dirty) solution
Python sources are attached.
My environnement :
Python program on W7-64
Same with Tango 8 and PyTango 8
Server Side (TestDeviceClass.py + TestDeviceImpl.py) :
Create a dynamic attribut MOD1 in init_device
data are pushed using push_change_event every 1s.
every 10s, MOD1 is removed and recreated.
Client Side (subscribe.py)
Subscribe to MOD1 (in less than 10s) and print time
in nominal case, after 10s, client stop printing time.
it takes usually more than 120s to restart the print.
In rare cases, it takes few seconds.
when client1 stop printing, if you relaunch a new client (client2), the client1 restart printing time along withclient2.
In the server, if you add a subscribe_event / unsubscribe_event after remove / create, client doesn't
freeze more than 3s !
Any help appreciated !
Same problem and bypass with ATTR_EVENT_CONF
Add self.pyds.subscribe_event("MOD1", PyTango.EventType.ATTR_CONF_EVENT, PrintEvent, stateless = True) in server unfreeze event manager.
Thanks for the report. I think the problem is coming from the C++ layer.
Is it to much to ask to try to reproduce the problem with a C++ client (I guess you can keep the python server)?