Comments (4)
@ShiSHcat Can you reproduce this issue? Which DNS server are you using?
from dns.
I'm not having this problem anymore.
from dns.
Thanks for reporting back!
from dns.
I had exactly the same problem (for different domain, of course). The problem was caused by:
- "not accessible" nameserver defined (as first server) in
/etc/resolv.conf
. There was some problems with DNS cache (the actual server was accessible, but somewhat refused connections) what resulted in following output (the output was shown immediately, so there was no timeout)host www.google.com nonworking.dns.server.ip ;; communications error to nonworking.dns.server.ip#53: connection refused ;; communications error to nonworking.dns.server.ip#53: connection refused ;; no servers could be reached
- under "standard" circumstances, connection to the nameserver times out ((the output was shown incrementally with considerable delay between each attempt)
host www.google.com nonworking.dns.server.ip ;; communications error to nonworking.dns.server.ip#53: timed out ;; communications error to nonworking.dns.server.ip#53: timed out ;; no servers could be reached
- so the connection seems to be considered established and it does not timeout at
Line 171 in c2bddbd
dns/lib/Rfc1035StubResolver.php
Line 331 in c2bddbd
UnexpectedValueException ('Decode error: Incomplete packet (tried to read 12 bytes from index 0')
that is received fromvendor/daverandom/libdns/src/Decoder/Decoder.php:121
and is converted toDnsException
byLine 89 in c2bddbd
- it seems to start working by replacing
$response = yield $socket->ask($question, $this->config->getTimeout());
with following code, but I'm totally unsure if it's correct or not especially considering my poor library and async-logic knowledge - f.ex. if another unintendedDnsException
isn't newly caught, how the socket should be closed etc. In addition, potential infinite loop (when all servers are not accessible) must be secured. Thus I'm not creating PR, it's just a concept how the issue could be fixed.try { /** @var Message $response */ $response = yield $socket->ask($question, $this->config->getTimeout()); } catch (DnsException $e) { if ($protocol === "udp") { Loop::defer(function () use ($socket, $uri) { unset($this->sockets[$uri]); $socket->close(); }); $uri = $protocol . "://" . $nameservers[++$attempt % $nameserversCount]; $socket = yield $this->getSocket($uri); continue; } }
from dns.
Related Issues (20)
- Too many time to resolve localhost domain HOT 7
- getting could not load the system's DNS configuration, using synchronous, blocking fallback error HOT 9
- Incomplete packet error (still exists) HOT 1
- Could Not Resolve Host HOT 3
- Backport queue errors on closure
- Rename Record and Resolver as well?
- Amp\Dns\resolve misses optional Cancellation parameter
- Async example? HOT 1
- Resolution where NDots > 1 failing
- Remove amphp/file dependency
- Bump the minimum version of amphp/uri HOT 4
- DNS resolution not working on Kubernetes HOT 5
- Subtype 'Too many redirects' DnsException HOT 1
- CreateProcess failed, error 193 HOT 6
- Libdns bug HOT 5
- Are dotless domains valid? HOT 3
- DNS frequently fails on Windows HOT 3
- etc/resolve ndots set to 1 HOT 1
- Ignore ServFail / NxDomain for search list, e.g. in Kubernetes cluster HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dns.