Repository navigation
v4.0.1 — фиксы секции ротации логов (#24, #25) - #26
Merged
Merged
Conversation
…м logrotate (#24, #25) Раскатка v4.0 на флот в день релиза вскрыла два бага секции ротации и один латентный. Ре-ран (#24): backup_file звался с одним аргументом; на первом прогоне [[ -f ]] коротил цепочку, на повторном голый $2 под set -u ронял модуль посреди секции — падал ровно тот прогон, которым чинят конфигурацию. Теперь аргумент передаётся, а хелпер требует каталог назначения через ${2:?…}: будущий одноаргументный вызов упадёт сразу и внятно на любом прогоне. Дубль-детект (#25): сравнение СТРОК масок против чужих станс, а logrotate дедуплицирует по РАСКРЫТЫМ файлам — конфликт с явными путями или другим глобом не ловился, logrotate целиком скипал стансу-жертву и выходил с ошибкой, na-logrotate.service уходил в failed при active-таймере. Теперь арбитр — сам logrotate: станса пишется целиком, `-d` по всему набору, конфликтные маски отдаются чужим стансам (у них может быть сигнальный reload вместо copytruncate). Чужие дубликаты вне наших масок — предупреждение, не наша починка. Латентный: голый word-split $NA_LOG_PATHS глоб-раскрывался по живым файлам, и в стансу ложились ЯВНЫЕ пути вместо масок — лог нового vhost'а никогда не начал бы ротироваться. Теперь read -a: маски идут как заданы. tests/logrotate-unit.sh извлекает секцию и ИСПОЛНЯЕТ её против стабов logrotate/systemctl (5 кейсов, 23 проверки; на v4.0 красный по всем трём пунктам) — добавлен в CI. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Патч-релиз: два бага секции ротации, пойманные при раскатке v4.0 на флот, плюс латентный третий, вскрытый новым тестом.
backup_file "$LR_CONF"без второго аргумента;$2unbound подset -uстрелял только когда станса уже существует. Фикс: аргумент +${2:?…}-guard в хелпере — одноаргументный вызов теперь падает сразу и внятно.duplicate log entry, скип стансы-жертвы целиком,na-logrotate.servicefailed при active-таймере. Фикс: вердикт самогоlogrotate -dпо всему набору; конфликтные маски отдаются чужим стансам с warn, чужие дубликаты вне наших масок — предупреждение.$NA_LOG_PATHSглоб-раскрывался шеллом по живым файлам — в стансу ложились явные пути вместо масок (лог нового vhost'а никогда не начал бы ротироваться). Фикс:read -a.tests/logrotate-unit.shизвлекает секцию ротации и ИСПОЛНЯЕТ её против стабовlogrotate/systemctl(5 кейсов / 23 проверки; на v4.0 красный по всем трём пунктам) + шаг в CI.Closes #24
Closes #25
🤖 Generated with Claude Code