Skip to content

Avoid race conditions in AlgorithmTimer

Rafal Bielski requested to merge rbielski/athena:algorithm-timer into master

The goal of this MR is to avoid race conditions in AlgorithmTimer as found in ATR-20796 / ATR-20918.

The issue (most likely) was due to the undefined behaviour of the C posix timer when calling timer_delete while a callback on timeout was already pending, but not yet executed.

Step 1: Implement a unit test reproducing the race condition.
Step 2: Change the AlgorithmTimer implementation to reproducibly pass the test.

Implemented a unit test which was failing in around 20-30% executions in the test3() function due to this issue. Then implemented a flag protecting from the race condition and ran the test 50 times, all were successful.

cc @fwinkl, @tbold, @aporeba

Edited by Rafal Bielski

Merge request reports