Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unexpected behavior with IncompatibleQoS Status (Presentation QoS) #512

Open
Dominik-38 opened this issue Oct 14, 2024 · 0 comments
Open

Comments

@Dominik-38
Copy link

Hello together,

I tested the different Incompatible QoS combinations of the RxO QoS and ran into a problem related to the Presentation QoS of a Publisher/Subscriber.

The setup looks like following:
I have two applications which simply do this:

  • Application A creates participant, topic, publisher/subscriber with relating Presentation QoS and writer/reader
  • Application B creates participant, topic, publisher/subscriber with relating Presentation QoS and writer/reader
  • The topics are used so that writerA matches readerB and readerA matches writerB

Here is a quick overview how I e.g. did it with a reader:

    /* First, a domain participant is needed.*/
    dds::domain::DomainParticipant participantA(5);

    /* To recieve something, a topic is needed. */
    dds::topic::Topic<HelloWorld::msg> topicA(participantA, "TopicA");

    dds::sub::qos::SubscriberQos dataSubscriberQoS;
    dataSubscriberQoS << dds::core::policy::Presentation::TopicAccessScope();

    /* A reader also needs a subscriber. */
    dds::sub::Subscriber subscriberA(participantA, dataSubscriberQoS);

    /* Now, the reader can be created to recieve a HelloWorld message. */
    dds::sub::DataReader<HelloWorld::msg> readerA(subscriberA, topicA);

I assigned the Presentation QoS like this to provocate the IncompatibleQoS Events:

  • Subscriber=TOPIC, Publisher=INSTANCE
  • Subscriber=GROUP, Publisher=INSTANCE
  • Subscriber= GROUP, Publisher=TOPIC

So when I run those two application and look at application A I expect a OfferedIncompatibleQoS event AND a RequestedIncompatibleQoS event triggered.
But unfortunately I only get the OfferedIncompatibleQoS events for every combination. For the reader I get a SubscribtionMatchedEvent which is not expected at that point.

To verify it I did the same with other RxO QoS for example assigning Reliability QoS incompatible combinations and there I get both incompatible events right like expected.

Another thing I looked at is to try the very same experiment with the cyclonedds C api and this works fine.

I assume that there is a problem in the cxx version with the RequestedIncompatibleQoS event for the Presentation QoS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant