General
cancel
Showing results for 
Search instead for 
Did you mean: 

"Transient Parse Error" out outbound e-mails

cjhsa
Occasional Advisor

"Transient Parse Error" out outbound e-mails

Hello, first post with a new identity, from an old time user.  I haven't been on here in awhile but am glad to be back!

So, I have what appear to be two identically configured servers in a SG cluster.  One of them is not behaving properly sending mail.  Any mail to domains that it cannot find MX records for are queued and not forwarded to the relay.  I  will use sendmail client to show the difference:

root@a300u036[/var/spool/mqueue]
# sendmail -vvv test.user@somedumbdomain.com
somedumbdomain.com: Name server timeout
test.user@somedumbdomain.com... Transient parse error -- message queued for future delivery

root@a300u034[/var/spool/mqueue]
# sendmail -vvv test.user@somedumbdomain.com
(just waits for input - no error, forwards to relay if you enter something)

These have identical sendmail.cf nswwitch.conf files, identical versions of sendmail installed, are both running 11.31.  DNS works fine on both.  Just that sendmail on this one server really HATES not being able to find an MX record for remote domains.  

I'm completly confused and would appreciate any assistance!  Thanks!

7 REPLIES
donna hofmeister
Trusted Contributor

Re: "Transient Parse Error" out outbound e-mails

cjhsa
Occasional Advisor

Re: "Transient Parse Error" out outbound e-mails

I have already perused that.  I tried putting the relay in /etc/hosts on the probematic server, with no luck.

My nsswitch.conf entry looks like this on both servers:

hosts: files [NOTFOUND=continue TRYAGAIN=continue UNAVAIL=continue SUCCESS=return] dns

Matti_Kurkela
Honored Contributor

Re: "Transient Parse Error" out outbound e-mails

You say the sendmail.cf files are identical - but is the file you are reading actually the configuration that is in effect on a300u036? It really sounds like sendmail on that host is trying to deliver direct to destination, while sendmail on a300u034 is using the configured SMART_HOST (i.e. the DS line in sendmail.cf).

I would check the start time of the running sendmail process, and if the process is older than the last change timestamp of sendmail.cf, I would try just restarting sendmail on a300u036 first.

MK
cjhsa
Occasional Advisor

Re: "Transient Parse Error" out outbound e-mails

The solution was very strange.  On the server that had the issue, there was a slight difference in the /etc/resolv.conf file, in that it contained an invalid domain (retired) in the SEARCH line.  That, in combination with the inability to find an MX record for the domain it was trying to send to, caused the problem.

That was the only change we made (remove the invalid entry) to get it working.  

Matti_Kurkela
Honored Contributor

Re: "Transient Parse Error" out outbound e-mails

Hmm. perhaps you should try making some DNS requests (e.g. using nslookup or dig commands) for the retired domain and seeing what happens? Your DNS server should be able to immediately provide a response that means "such a name definitely does not exist". Correct negative DNS responses can be almost as important as positive ones.

For example, the nslookup command should respond with something like:

** server can't find somename.retired.domain: NXDOMAIN

If the query instead produces a DNS server error (effectively "I cannot find out for sure if it exists or not") or a time-out error, you may have a problem in your DNS that should be fixed: perhaps some references to the retired domain were not removed correctly from your DNS servers?

MK
cjhsa
Occasional Advisor

Re: "Transient Parse Error" out outbound e-mails

I was wrong, the domain is not retired.  It is just blocked internally due to company separation.  I can still see the DNS SOR and MX records for it.  

# nslookup
Using /etc/hosts on: localhost

> server w.x.y.dns
Specifying a server has overridden the switch policy order.
The reset command will reinstate the order specified by the switch policy.
Default Name Server: dns.mydomain.com
Address: w.x.y.dns

> jciag.com
Name Server: dnsserver.mydomain.com
Address: w.x.y.dns

Trying DNS
Non-authoritative answer:
Name: baddomain.com
Addresses: w.x.y.z, w.x.y.zz

> set type=mx
> baddomain.com
Name Server: dnsserver.mydomain.com
Address: w.x.y.z

Trying DNS
Authoritative answers can be found from:
baddomain.com
origin = hostname.baddomain.com
mail addr = admin.baddomain.com
serial = 71258
refresh = 900 (15M)
retry = 600 (10M)
expire = 86400 (1D)
minimum ttl = 3600 (1H)
> exit

Matti_Kurkela
Honored Contributor

Re: "Transient Parse Error" out outbound e-mails

> set type=mx
> baddomain.com
Name Server: dnsserver.mydomain.com
Address: w.x.y.z

Trying DNS
Authoritative answers can be found from:
baddomain.com
origin = hostname.baddomain.com
mail addr = admin.baddomain.com
serial = 71258
refresh = 900 (15M)
retry = 600 (10M)
expire = 86400 (1D)
minimum ttl = 3600 (1H)
> exit

 

Actually, this looks like a negative response: dnsserver.mydomain.com had asked for MX records for baddomain.com and was told by a baddomain.com nameserver that there definitely aren't any. It's then showing you the baddomain.com Start-of-Authority record ("Authoritative answers can be found from...") in case you want to get more up-to-date information straight from the source.

A response with actual MX records would have looked like this:

baddomain.com  preference = 10, mail exchanger = <one mail server for baddomain.com>
baddomain.com  preference = 20, mail exchanger = <another mail server for baddomain.com>

If there are no MX records for baddomain.com, but the baddomain.com name has an A record associated with it, mail delivery falls back to that.

Also, if your intent was to anonymize the nslookup output, you missed one spot. You may want to edit your post.

MK