New We are sorting MAX channels into categories and territories. Read the news

⚙️ Команда вернула ноль. Заметка исчезла.



Две git notes add запускают одновременно на разные коммиты. Обе выходят с кодом 0. Одна заметка при этом пропадает.

Три вещи, за которые зацепился:

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

Нашлось не руками: детерминированная виртуалка гоняет один и тот же сценарий под разными расписаниями потоков, пока не упадёт, и сужает сбой до конкретного шага.

Патч автор уже отправил в апстрим, репозиторий тут.

Код возврата — не отчёт о работе.

#git #опенсорс
Views: 2
Open in MAX Report an inaccuracy

Report an inaccuracy

Describe what needs fixing. If you have a source, add a link.

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content — check the address before entering passwords or payment details.

Redirecting in 10 s

Go