change_event freezed when removing and recreating an attribut

Hi Tangoers,
I would like to submit a change_event problem and a (temporary dirty) solution smile
Python sources are attached.

My environnement :
Python program on W7-64
Installed :
TangoSetup-9.2.2_win64
pytango-9.2.0.Win32-py2.7.msi

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

Results :
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 !
Christophe



Edited 5 months ago
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.

Regards,
Christophe
Edited 5 months ago
Hi Christophe,

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)?

Cheers
Tiago
Hi Tiago,
I will try to reproduce with a C++ client as soon as possible.
I let you informed.
Christophe
 
Register or login to create to post a reply.