Getting error at the time of Create Query Condition

2 posts / 0 new
Last post
Last seen: 5 years 8 months ago
Joined: 11/26/2015
Posts: 1
Getting error at the time of Create Query Condition

We are using create_querycondition to read selective samples from GDS. The query works fine for the 1st 4 samples read. The moment 5th sample is read, the following error is seen:
[D0100|Reader(80000307)|T=TRACK_KINEMATICS_TOPIC|CREATE READCONDITION]DDS_QueryCondition_createI:!create DDS_QueryCondition

because of which, the next sample cannot be read and the follwoing error condition occurs:
[D0100|Reader(80000307)|T=TRACK_KINEMATICS_TOPIC|CREATE READCONDITION]DDS_QueryCondition_createI:!create DDS_QueryCondition
DDSSubscriber_impl::create_read_or_take_w_condition_untypedI:ERROR: Bad parameter: condition

Please specify what can be the cause of error. Also, are there any log files which get created which can be studied for debugging purpose.

Sandra Rodriguez's picture
Last seen: 5 months 1 week ago
Joined: 11/24/2015
Posts: 18


I think that you are reaching the reader resource limit DDS_DataReaderResourceLimitsQosPolicy::max_query_condition_filters, which determines the maximum number of unique query condition content filters that a reader may create (range [0, 32]). The default value is 4, and therefore failing when trying to create the 5th filter is expected. You can find more information in the RTI Connext DDS online documentation:

I have reproduced the error using 5 different query condition content filters. However, I see one error that indicates the origin of the issue before the errors you posted. It is the following:

[1457698514.192998] U0000000000000484 [D0226|Reader(80000007)|T=Example querycondition|CREATE READCONDITION] PRESPsReader_createReadOrQueryConditionI:!create QueryConditionContentFilterCount maximum

Do you see this error message, too? If this is also your case, setting the max_query_condition_filters limit higher will help with your initial problem. However, as you can set this limit as high as 32, you will need to analyze how many different query condition filters you really need in your use case.