-
Notifications
You must be signed in to change notification settings - Fork 6
Description
While testing (for the first time) the new 'built-in ishapes' feature of insight, I ran into a (small) bug:
I first created a writer/reader pair for 'squares' that worked just fine.
The only (minor) thing was that (having used the OSPL/cyclone ishapes-demo before), upon publishing, nothing was displayed (unlike our existing ishapes-demo's that show any published shape with an 'white' centre-dot and a subscribed shape with a 'black' center-dot .. maybe an idea but not a real problem
The issue I'm referring to manifested when I tried to create another/new square-reader but this time with a modified QoS i.e. a history of 10 samples.
That reader was not created an instead the log shows _"Error creating endpoint Square: [DDS_RETCODE_INCONSISTENT_POLICY] A policy with inconsistent values was used. Occurred upon initialisation of a cyclonedds.topic.Topic".
The suspicion is that the topic-creation is somehow tied to the publisher/subscribe creation which can cause these issues when you start manipulating the requested QoS that apparently is also used for (in this case multiple) creations of the same topic.
In a 'true data-centric world', there would be data-model designers that think about QoS (at least the ones with global impact) rather than each individual application-developer and that's why we introduced this notion of topic-level QoS policies that are 'inherited' when creating readers/writers for such a topic.
So a suggestion would be to have an option to define the topic-level QoS (including the DURABILITY_SERVICE QoS policies that will become relevant soon when we introduce a true durability-service for Cyclone) for each shape which then can be used/shown as the default QoS's when explicitly creating readers/writers for those topics and of course would allow to adjust/overrule QoS-policies such as (in this case) the history-depth QoS for a reader (similar to the current QoS-selection window that pops up once you opt to publish/subscribe to a shape).
Additionally noting (not sure its an issue) that 'history-depth' that's not part of the DURABILITY_SERVICE QoS i.e. that applies to a writer or reader is a pure local QoS-setting (also non-RxO) and should therefore be allowed to be adjusted separately for writers and readers, although most commonly its only exploited for the reading-side .. but that's another story...
For completeness, in cyclone, the DURABILITY_SERVICE history-QoS (kind and depth) is also used to 'dimension' the transient-local writer-side 'history' (so that its possible to have a different kind/depth for 'live-data' and 'historical-data', a usecase that you've encountered before I believe ;) .
Finally I haven't managed to select a >1 history-depth that was actually shown for a subscribed shape like a 'trail' (i.e. a reader with history-depth 10 shows the full history when periodically reading all arrived data i.e. the latest 10 samples, resulting in a 'trail' being shown. This is also the behavior of our ishape-demo apps. This comes in handy for non-volatile readers (transient-local/transient/persistent) that are late-joiners where it can be easily verified that all historical samples are delivered (assume they fit in the history). To show that for transient-local writers we also added the feature to 'suspend/resume' writing of shapes by clicking on the canvas. This wouldn't be needed for 'true' durable data i.e. transient/persistent as for testing that you could actually remove the writer before adding a late-joining reader that would depend on a 'durability-service' still running somewhere in your system.
Hope this makes sense, thanks for all the good work !!