backoff-upon-all-sources-disabled

<domain>

Уходит ли очередь в backoff, когда отключены все её исходящие адреса
в конфигурации это строкаbackoff-upon-all-sources-disabled falseвнутри блока <domain>
Что делать очереди, у которой не осталось ни одного адреса

Когда отключены все адреса отправки очереди, ей нечем работать. Включённая директива переводит такую очередь в щадящий режим — backoff, — вместо того чтобы она продолжала пытаться и копить отказы. Причина отключения роли не играет: команда с консоли и правило почтовика с действием disable-source-ip дают один результат.

Зачем вообще переводить. В backoff действуют отдельные, заниженные лимиты и своё расписание повторов. Очередь без адресов всё равно ничего не отправит, но перестанет тратить попытки и портить статистику приёмника — а когда адреса вернутся, поток пойдёт не рывком.

Умолчание false: очередь остаётся в нормальном режиме и просто стоит.

Главная ловушка, и о ней предупреждает сам вендор. Обратно очередь не выходит сама, когда адрес возвращается в работу: MTA эти два события не связывает. Руководство рекомендует задавать вместе с этой директивой backoff-to-normal-after — иначе очередь останется в заторможенном режиме и после того, как всё починилось. Включить одну без второй хуже, чем не включать вовсе: отправка тихо идёт медленно, и причина этого в конфигурации не видна.
Что делает Хаб. Не пишет. Свои отключения он делает с автовозвратом и по одному адресу, так что «отключились все» — не его сценарий.

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

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

Только вместе с таймером возврата. Это не рекомендация «на всякий случай», а условие работоспособности: без backoff-to-normal-after очередь не выйдет из backoff никогда. Разумная пара — включить эту директиву и поставить возврат в несколько часов.

Оставлять false осмысленно, если правил с disable-source-ip на узле нет: сценарий тогда недостижим, а лишняя строка в конфигурации только запутывает.

Проверять надо режим очереди, а не эту строку. Она задаёт переход, а увидеть результат можно только в состоянии очередей.

Из руководства здесь умолчание false, перечень причин отключения и прямая рекомендация вендора задавать вместе с backoff-to-normal-after.
Пример в конфигурации
# пара, а не одна строка: без второй очередь не вернётся
<domain *>
    backoff-upon-all-sources-disabled true    backoff-to-normal-after 4h
</domain>
Вторая строка обязательна по смыслу: MTA сам не возвращает очередь в нормальный режим, когда адреса включаются обратно.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Включают без таймера возврата

§ 3.3.10.55

Чем чреватоMTA не возвращает очередь в нормальный режим, когда адрес включается обратно, — руководство говорит об этом прямо. Очередь остаётся в backoff с заниженными лимитами после того, как причина исчезла.
Как заметитьАдресов в списке отключённых нет, а очередь по-прежнему в backoff и отправляет медленно.
Как правильноЗадать backoff-to-normal-after в том же блоке. Уже застрявшие очереди перевести в нормальный режим отдельной командой.

Включают, не имея правил с отключением адресов

наш опыт

Чем чреватоСценарий «отключились все адреса» недостижим, если никто их не отключает. Строка ничего не делает, но выглядит как работающая защита — и при разборе инцидента уводит в сторону.
Как заметитьДиректива включена, а в списке отключённых никогда ничего не было.
Как правильноЛибо убрать строку, либо завести правила почтовика, ради которых она задумана.

Ищут причину замедления в лимитах очереди

наш опыт

Чем чреватоВ backoff действуют не обычные лимиты, а отдельные, заниженные. Разбирательство уходит в настройки темпа, тогда как дело в режиме очереди, в который её перевела эта директива.
Как заметитьФактический темп не совпадает ни с одним значением из блока приёмника.
Как правильноСперва смотреть режим очереди, потом лимиты — в backoff действует другой их набор.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
backoff-upon-all-sources-disabled <boolean>
Значения
true или false (принимаются и yes/no)
Умолчание
false § 3.3.10.55
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Значение сливается по блокам <domain> от общего к частному: побеждает наиболее подходящий блок, а не последний по файлу. Подхватывается по pmta reload, перезапуск не нужен. На очередь, уже находящуюся в backoff, изменение не влияет — она вернётся по своему таймеру.
Как проверить на узле
Смотреть надо на режим очередей, а не на конфигурацию: строка задаёт переход, а состояние видно только в сводке.
pmta show queues --maxitems=20
pmta show disabled sources
Сопоставьте два вывода: очередь в backoff при пустом списке отключённых означает, что адреса уже вернулись, а очередь осталась — то есть таймер возврата не задан. Хаб эту директиву не пишет; режим очередей он снимает при опросе узла.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Ротация адресов отправки · Настроить темп под провайдера