eclipse-cyclonedds / cyclonedds

Eclipse Cyclone DDS project
https://projects.eclipse.org/projects/iot.cyclonedds
Other
798 stars 349 forks source link

Fix ACKNACK event mishandling of AANR_SILENT_NACK #2049

Closed eboasson closed 1 week ago

eboasson commented 1 week ago

This case is supposed to not send anything at all, only rescheduling the event to send a NACK when we are willing to do that. The early out was missing, causing a (pure) ACK to be generated and a failing assertion in the code updating the state of last ACK sent because it was supposed to be unreachable.

In a release build it should not cause more damage than a sometimes sending ACK where sending nothing was intended; in a debug build it would instead crash.

(Why did I not spot this before merging #2033 ... 😢)