Archive periodic events no longer received after attribute polling restart
Archive periodic events are no longer sent by the device server if the remote attribute polling is temporary stopped and restarted, archive events based on archive change event thresholds are still sent. It seems like there is no issue with standard PERIODIC events (not archive periodic events).
Here is how you can reproduce the issue with TangoTest device server for instance.
- Start Tango Test device
- Set the polling period to 1000 ms on ampli attribute
- Configure the archive event properties for the ampli attribute with an archive absolute change threshold of 1, and archive period of 3000
- Start a Tango client (or more) which subscribes to sys/tg_test/1/ampli attribute archive events
- At this point, the clients receive archive events as expected (every 3s)
- Stop the polling for ampli attribute
- The clients receive an API_PollObjNotFound error event
- Restart the polling for ampli attribute (set to 3000ms for instance)
- The clients receive 1 archive event for ampli attribute.
- Wait for some time longer than the archive period event configuration for ampli attribute
- The archive periodic events are no longer received by the clients/sent by the server after this single event.
- Set ampli attribute to a different value which should trigger archive change event
- The clients receive the archive event triggered by the change but the archive periodic events are still not received.
Restarting the device server restores a correct behaviour. Restarting the device sys/tg_test/1 (restart device from jive or DevRestart('sys/tg_test/1') on TangoTest admin device as well as RestartServer command on TangoTest admin device) seems to solve the issue too at some point.
I tested with tango-9-lts branch and 9.3-backports branch, as well with 9.3.3 and the bug seems to be present in all these versions