Doc #73149 [Com]: dns_get_record(): A temporary server error occurred
Edit report at https://bugs.php.net/bug.php?id=73149&edit=1
ID: 73149
Comment by: josh dot t dot richards at gmail dot com
Reported by: walter at oradio dot be
Summary: dns_get_record(): A temporary server error occurred
Status: Open
Type: Documentation Problem
Package: Network related
Operating System: Linux Mint 17 Qiana and Centos 7
PHP Version: 5.6.26
Block user comment: N
Private report: N
New Comment:
It's returning false for me just fine though (even with the error message) which
can be checked more easily with var_dump, but it does appear that dns_get_record() is more noise-y
than, say, dns_check_record() because it tries to translate the errno output if the dns lookup
fails.
The second issue is that sometimes it translates to TRY_AGAIN and other times to - presumably -
either NO_DATA or HOST_NOT_FOUND here:
https://github.com/php/php-src/blob/15bdc85e005e4e750428b8a9f7d6460dc126c4ff/ext/standard/dns.c#L958-L981
This is in contrast to, say, dns_check_record(), which doesn't bother: https://github.com/php/php-src/blob/15bdc85e005e4e750428b8a9f7d6460dc126c4ff/ext/standard/dns.c#L426-L431
So that accounts for the noisiness.
How I'm able to consistently reproduce the behavior: The "A temporary server error
occurred" message goes away when I do an nslookup in between on the same non-existent domain.
If I don't, it continues. (P.S. To repeat the same behavior (i.e. the noisy output) you have to
pick a *new* non-existent domain once you've gone through the
dns_get_record/nslookup/dns_get_record sequence).
Also, my gut is telling me the the inconsistent errno may be a red herring in the end, but I
haven't dug into what would account for the errno changing in between calls. Possibly some DNS
resolver caching/etc. where in one case it isn't certain it's more than a temporary
failure and in another situation it's able to conclude "nah this really doesn't
exist".
Previous Comments:
------------------------------------------------------------------------
[2023-04-20 08:33:11] dewald at appturelab dot com
Still experiencing same as what "max at nextcloud dot com" stated but with DNS_NS and with
PHP 8. This cannot be a doc bug. It must be when the records cannot be found, ie the given domain
does not exist etc.
------------------------------------------------------------------------
[2021-11-08 11:06:11] max at nextcloud dot com
We ran into this when querying for 'DNS_A', 'DNS_AAAA' or 'DNS_CNAME'
records.
Code in question is here: https://github.com/nextcloud/server/blob/master/lib/private/Http/Client/DnsPinMiddleware.php#L83
It looks like this is independent of the type - just that 'DNS_ANY' requests are mor
likely to cause a server failure.
However even with a server failure there should be a way to handle the situation - either by
returning false or by throwing a well defined error that can be caught.
------------------------------------------------------------------------
[2021-07-15 10:42:30] cmb@php.net
Okay, changing to doc bug then. Thanks!
------------------------------------------------------------------------
[2021-07-15 10:30:53] e6990620 at gmail dot com
This error is due to the fact that the default value for the $type argument is DNS_ANY, which is
ignored by most DNS servers.
dns_get_record('radioantwerpen.be') doesn't work, but
dns_get_record('radioantwerpen.be', DNS_A) does.
Source: https://dustri.org/b/a-short-tale-on-phps-dns_get_record.html
------------------------------------------------------------------------
[2021-06-06 04:22:08] php-bugs at lists dot php dot net
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Re-Opened". Thank you.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=73149
--
Edit this bug report at https://bugs.php.net/bug.php?id=73149&edit=1
Thread (4 messages)