Skip to content

Liveliness lease shorter than the deadline period

Rule 36 · applies to the subscriber · Back to all rules

Breaks a guarantee. The writer can be declared not-alive between deadlines, so you get liveliness-lost events that contradict a healthy deadline cadence.

If you set Deadline period is finite together with Liveliness lease_duration shorter than the deadline
Breaks a guarantee
  • Settings involved: Liveliness and Deadline
  • What QoS Guard checks: [DEADLN.period ≠ ∞] ∧ [LIVENS.lease < DEADLN.period]

Example

Lease 50 ms with a 100 ms deadline. The writer is flagged as lost mid-cycle even though it meets every deadline.

How to fix it

Set the liveliness lease_duration at least as long as the Deadline period.

Why this rule is flagged

What the DDS specification says

The DDS specification does not settle this case on its own, so the rule rests on direct measurement.


What the engine source code shows

The behavior here does not depend on a specific engine's implementation, so the rule follows from the measurements.


What the measurements show

Direct measurement confirms that when the liveliness lease is shorter than the deadline period, the subscriber declares the writer not alive between deadline cycles, so a liveliness-lost event fires before the deadline check even runs. This premature liveliness loss preempts deadline monitoring even though the writer is still meeting every deadline. Both engines showed the same crossover once the lease fell below the deadline period.

Measurement Finding
Setup Liveliness lease set shorter than the deadline period
Result A liveliness-lost event fires between deadline cycles and preempts deadline monitoring
Engines Both engines showed the same crossover once the lease fell below the deadline period