eProsima / Fast-DDS

The most complete DDS - Proven: Plenty of success cases. Looking for commercial support? Contact info@eprosima.com
https://eprosima.com
Apache License 2.0
2.16k stars 765 forks source link

[21314] Improve resilience against clock adjustments #5018

Closed ma30002000 closed 1 month ago

ma30002000 commented 3 months ago

Description

When investigating a system undergoing larger system clock adjustments, I noticed that in some places, std::chrono::system_clock and std::chrono::high_resolution_clock are used for handling timeouts and status check intervals. However, std::chrono::system_clock is definitely not steady, and std::chrono::high_resolution_clock is not steady quite often (see cppreference).

When undergoing clock adjustments (manually or due to clock server synchronization), timeouts and status checks might no longer be triggered when relying on timestamps based on std::chrono::system_clock.

@Mergifyio backport 2.14.x 2.10.x

Contributor Checklist

Reviewer Checklist

ma30002000 commented 2 months ago

Is there anything I need to to in order to get CI results?

JesusPoderoso commented 2 months ago

Hi @ma30002000, thanks for your contribution. We will look at it in the following days and order CI. Thanks for your patience!

MiguelCompany commented 1 month ago

Manual CIs:

MiguelCompany commented 1 month ago

@Mergifyio backport 2.14.x 2.10.x

mergify[bot] commented 1 month ago

backport 2.14.x 2.10.x

✅ Backports have been created

* [#5189 [21314] Improve resilience against clock adjustments (backport #5018)](https://github.com/eProsima/Fast-DDS/pull/5189) has been created for branch `2.14.x` but encountered conflicts * [#5190 [21314] Improve resilience against clock adjustments (backport #5018)](https://github.com/eProsima/Fast-DDS/pull/5190) has been created for branch `2.10.x` but encountered conflicts