The manual states the requirement briefly: the engine needs a recursive name service — a resolver that accepts a query and carries resolution through to the end itself.
Some resolvers do not do recursion and answer with a referral: “ask over there.” Such a response does not carry what the engine needs, and the engine discards it — and repeats the query, counting on the cause being temporary or on another server answering.
When several such responses arrive from the same server, the engine writes a warning to the log. This is the only signal: delivery does not stop, it just goes more slowly.
The manual names two causes, both about resolver configuration: refusing to serve recursion and exhausting the limit on concurrent recursive queries.
The second half is the limit on concurrent recursive queries. It kicks in under load, that is, exactly when the resolver is needed most: a mailing has started, there are many domains, many queries — and the resolver starts answering with referrals. On a calm node everything looks healthy.
The Hub does not monitor this either: warnings about non-recursive responses live in the node’s log, which the Hub does not parse. So we would not notice this kind of slowdown.
# your own resolvers instead of the hosting provider's: the engine rotates through them name-server 10.1.2.3 name-server 8.8.8.8
what people get wrong and how it ends2 mistakes▶
§ 4.2.3
§ 4.2.3
2 relations
Name cacheThe numeric sign of the qualitative requirement written in the node preparation. § 4.2.3The name lookup did not complete — and no conclusion is drawnThe resolver requirement whose violation produces this failure. § 4.2.3Resolve a name and connectThe mechanism the command works with. § 6.3.8The receiver declares an encryption requirement in its DNS zoneA resolver with DNSSEC support is needed — without it DANE records deserve no trust and the mechanism does not work. § 10.5Keeping selected domains resolved at all timesThe mechanism takes load off the resolver exactly for the domains that matter most — but does not cancel the requirements for the resolver itself. inference
grep -i 'recursi\|referral' /var/log/pmta/pmta.log | tail -20 pmta resolve gmail.com
3 articles
◇What makes a virtual machine riskyRunning on a virtual machine is possible, but the manual does not recommend it without sufficient hardware and properly tuned hypervisor settings: under load the node may stop responding.◇The activation key is a prerequisite for installation, not a step after itWithout an activation key from SparkPost support the engine neither installs nor runs, and the license tier sets the outbound connection ceiling: on Standard everything above 200 is ignored.◇What the node tells about itself and through which channelsSeven observation surfaces: the web monitor, the console in four formats, the log, accounting, accounting search, metrics and export to external analytics.