Две самые проклятые реализации функции sleep, которые я когда либо видел в одном видео. Причем это не прикол а реальный код, до недавнего времени обслуживающий CI runners на github.

Версия 1: Если в системе нет команды sleep, то n раз вызываем ping какого-то IP, а если нет и пинга - n тысяч раз пишем строку в /dev/null.

Кто-то посчитал что это плохо, и выкатил версию 2: На псевдокоде работает так - while (current_seconds - start_seconds) != n: do_some_work()

Обратите внимание на условие выхода из цикла - только когда прошло точное количество секунд. И если вы хотели спать 5 сек, а на момент очередной итерации цикла уже прошло 6 - ваш цикл будет крутиться до следующего ребута системы.

Баг в таком виде жил 3 года, и все это время люди репортили, что у них почему-то зависают пайплайны)

#разработка