⚙️ Команда вернула ноль. Заметка исчезла.
⚙️ Команда вернула ноль. Заметка исчезла. Две git notes add запускают одновременно на разные коммиты. Обе выходят с кодом 0. Одна заметка при этом пропадает. Три вещи, за которые зацепился: — Частота. На обычной Linux-машине заметка теряется в 25 запусках из 30. Это не экзотика на странном железе. — Причина. Второй процесс прочитал ссылку на заметки раньше, чем первый её сохранил, и записал свою версию сверху. Одна строка в notes-utils.c, где ref обновляют без проверки под блокировкой. — След. Падение — 2936 шагов и 1937 событий в одном прогоне. Глазами такое не листается. Нашлось не руками: детерминированная виртуалка гоняет один и тот же сценарий под разными расписаниями потоков, пока не упадёт, и сужает сбой до конкретного шага. Патч автор уже отправил в апстрим, репозиторий тут. Код возврата — не отчёт о работе. #git #опенсорс