
Две команды git notes add одновременно добавляют заметки к двум разным коммитам. Обе завершаются с кодом 0, но одна заметка пропадает: на обычной Linux-машине — в 25 запусках из 30. Фарид Закария обнаружил эту гонку своей детерминированной виртуальной машиной Rewind VM и показывает, как тремя вопросами к записанным прогонам добраться от «тест иногда падает» до одной строки в notes-utils.c, которая обновляет ссылку refs/notes/commits без проверки, что её не успел изменить соседний процесс. Патч уже отправлен в рассылку git.
Читать далее
