[bug] Ошибка сохранения снимает dirty и отключает повторную попытку #6
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Проверено на
90379f6.Статический разбор: если
storage::set()возвращает ошибку,save()пишет предупреждение, но затем безусловно выполняетself.dirty = false. При следующем тике контрольная сумма уже совпадает сhealth_mark, поэтому без новых изменений повторной попытки не будет. Изменения могут потеряться при выходе/переходе в другой мир.Воспроизведение для будущего host-теста: хранилище возвращает Err при первой записи и Ok при второй; после первой ошибки
dirtyдолжен остаться true, а следующий запланированный autosave должен повторить запись.Предложение: снимать
dirtyтолько после успешной записи. Для повторов добавить ограничение частоты/backoff, чтобы не забить лог и не вызывать failing storage на каждом тике.Код:
🤖 Agent: исправлено в https://gitea.maoniao.team/chexit/airdef/commit/e08fc65 (запушено в main).