spool-delete-corrupted

Global

Удалять ли повреждённые файлы, найденные в спуле
в конфигурации это строкаspool-delete-corrupted falseвнутри блока Global
Что делать с письмом, которое уже не прочитать

Умолчание — false. Строка решает судьбу файлов спула, в которых MTA нашёл ошибки кодирования — руководство называет причиной порчу данных на диске.

С умолчанием такие файлы игнорируются и остаются лежать. С true — удаляются.

Речь не о письмах, которые не удалось доставить: те живут своим порядком повторов и отказов. Речь о файлах, которые MTA не может прочитать — доставить их нельзя ни при каких условиях.

Главная ловушка — умолчание копит следы неисправности. Оставленный файл не мешает работе, но и не исчезает: он лежит в каталоге спула, пока его не уберут руками. На узле без присмотра такие файлы накапливаются, и обнаруживаются они обычно при разборе совсем другого — когда считают файлы в каталоге и не сходятся с числом писем в очереди.

Вторая половина важнее: сам факт появления таких файлов — это сигнал. Ошибки кодирования означают порчу данных на диске, и удаление файла лечит следствие. Причину — диск, файловую систему, память — надо смотреть отдельно.

Что делает Хаб. Не пишет — остаётся вендорское false, то есть повреждённые файлы остаются в каталоге.

Заметить их у нас нечем: отдельного слежения за спулом Хаб не ведёт, а число файлов в каталоге не показывает. При включённом удалении держателей файлов число файлов в спуле сопоставимо с числом писем в очереди — расхождение и было бы признаком.

Рекомендуемые значения

Что ставить. Выбор между следами и уборкой:

Значение Когда
false (умолчание) есть присмотр, и повреждённый файл хочется сохранить для разбора
true узел работает без присмотра: файл всё равно не прочитать, а копить его незачем

Второе не отменяет разбора: удалять стоит вместе с тем, чтобы знать о факте — по журналу, а не по содержимому каталога.

Умолчание false, причина повреждения (порча данных на диске) и поведение при выключенной строке — из руководства, § 3.3.1.6. Разбивка случаев наша.
Пример в конфигурации
# узел без присмотра: прочитать файл всё равно нельзя
spool-delete-corrupted true
Удаление лечит следствие. Сам факт появления таких файлов означает порчу данных на диске, и причину смотреть надо отдельно.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается2 ошибки▶

Включают удаление и считают вопрос закрытым

наш опыт

Чем чреватоУдаление убирает файл, но не причину. Порча данных на диске продолжается, и следующие письма портятся так же — просто теперь молча.
Как заметитьЗаписи о повреждённых файлах в журнале повторяются.
Как правильноСмотреть диск и файловую систему; удаление оставить как уборку, а не как лечение.

Путают повреждённый файл с недоставленным письмом

§ 3.3.1.6

Чем чреватоНедоставленные письма живут своим порядком повторов и отказов, и эта строка их не касается. Ожидание, что она вычистит застрявшую очередь, не сбывается.
Как заметитьСтрока включена, очередь не уменьшается.
Как правильноЧистить очередь командой удаления с явным отбором, а эту строку оставить для своей задачи.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
spool-delete-corrupted <boolean>
Значения
yes | no | true | false
Умолчание
false § 3.3.1.6
Применение
reload, перезапуск не нужен
Очередь
затронет и то, что уже стоит в очереди
Где писать
Global
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива пишется в корне файла конфигурации и действует на весь узел: правило одно для всех каталогов спула, задать его отдельно для одного расположения нельзя.
Как проверить на узле
Строку видно в конфигурации, следы — в журнале и в каталоге:
grep -n 'spool-delete-corrupted' /etc/pmta/config
grep -i 'corrupt' /var/log/pmta/pmta.log | tail -10
Записи в журнале означают, что порча данных уже случалась. Это повод посмотреть диск и файловую систему, а не только настроить удаление.
В Хабе
Цена ошибки
опасно: последствия переживут откат
Сценарии
Разобрать зависшую очередь