[Перевод] Два git notes add параллельно: оба вернули 0, а одна заметка пропала
Habr ·
![[Перевод] Два git notes add параллельно: оба вернули 0, а одна заметка пропала](https://habrastorage.org/extt/63/1e/21/631e2176626c4f29976af4f2ebccc703.jpg)
Две команды git notes add добавляют заметки к двум разным коммитам одновременно. Обе завершаются с кодом 0, но одна заметка исчезает: на обычной Linux-машине — в 25 запусках из 30. Фарид Закария нашёл эту гонку своей детерминированной виртуальной машиной Rewind VM и показывает, как тремя вопросами к записанным прогонам дойти от «тест иногда падает» до одной строки в notes-utils.c, которая обновляет ссылку refs/notes/commits без проверки, что её не успел изменить соседний процесс. Патч уже отправлен в рассылку git. Читать далее