missing deadline timeout

3 posts / 0 new
Last post
Offline
Last seen: 7 years 2 months ago
Joined: 06/04/2015
Posts: 6
missing deadline timeout

We are seeing inconsitent results with the on_requested_deadline_missed. I modified the sample application (deadline_contentfilter) to write 20 instances (rather than 2).

The publisher writes all 20 samples for the first 10 seconds. After 10 seconds, the publisher just stops writing the half the samples (instances 10-19 top being written)

The subscribers reads all samples for the first 20 seconds, after 20 seconds, it will use the content filter to only get instance with a key less than 2.

I have included the VS2012 solution has my modifications to the publisher. I have also included the log, but I have a few key pieces on info listed below as well.

When the publisher stops writing instances 10-19, I get the deadline missed callback as expected

Missed deadline @ t=13.72s on instance code = 10
Missed deadline @ t=13.73s on instance code = 11
Missed deadline @ t=13.74s on instance code = 12
Missed deadline @ t=13.75s on instance code = 13
Missed deadline @ t=13.76s on instance code = 14
Missed deadline @ t=13.77s on instance code = 15
Missed deadline @ t=13.77s on instance code = 16
Missed deadline @ t=13.78s on instance code = 17
Missed deadline @ t=13.79s on instance code = 18
Missed deadline @ t=13.80s on instance code = 19

 

however, on subsequent callbacks, I don't get that compelete list. I usually get most of the list, but not all of them as shown here.

Missed deadline @ t=17.72s on instance code = 10
Missed deadline @ t=17.75s on instance code = 13
Missed deadline @ t=17.76s on instance code = 14
Missed deadline @ t=17.78s on instance code = 16
Missed deadline @ t=17.79s on instance code = 17
Missed deadline @ t=17.80s on instance code = 19

 

In our application (which is more complicated) I usaully only get the callbacks for a small fraction of the instances that I should receive them for.

If I create 10 instances and then stop writing them in our real applciation, then I might only get 1 or 2 deadline missed callbacks. Not sure what is going on.In our application I always get atleast 1 and I will always get that same list each time the deadline expiores again. So if I only get 2 instance notifications of deadline missed, I will always get those smae 2 instances every 6 seconds (which is our deadline period). In the sample application, the list varies from one expiration period to the next.

Is there any guidenace you could give to help us increase the reliablity of the missed deadline callback?

 

 

Offline
Last seen: 7 years 2 months ago
Joined: 06/04/2015
Posts: 6

Ok, after doing some more debugging, we seem to have found out what is  going on. It appears that if X items missed a deadline in the same frame, then only 1 callback is generated and it only informs you of 1 specific instance (but tells you that X number were actually missed  that frame). 

For example, if I write a test app that generates 10 different instances and then stops writing 1 instance per frame until there are no more instances being writen, then I can correctly identify evey instance exceeding the deadline. If in that same test app, rather than stop writing the 10 instances over the course of 10 frames, the 10 instances are all stopped in the same frame, then I will get a SINGLE deadline missed callback, but it tell me that there were 10 instances that missed a deadline, but only gives me DETAILED information about 1 instance.

Is there ANY way to get a list of every instance that times out? Basically, I would like to know the key of every instance that times out due to missed deadlines.

Offline
Last seen: 7 years 2 months ago
Joined: 06/04/2015
Posts: 6

In addition, it looks like enabling BATCH mode causes all the timestamps to get grouped together. The problem is, if all 10 instances hit the deadline in the same frame, then I only get the detailed key information about 1 of the 10 instances. Every subsequent timeout, I will continue to learn about that same isntance that timed out, but I never get the detailed info about the other 9 instances.