Новое Распределяем каналы MAX по категориям и территориям. Читать новость 

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



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

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

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

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

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

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

#git #опенсорс
Просмотры: 9
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти