This 
https://apple.stackexchange.com/questions/175320/why-is-my-hostname-resolution-taking-so-long
 
<https://apple.stackexchange.com/questions/175320/why-is-my-hostname-resolution-taking-so-long>
 may help you.

> On Feb 22, 2021, at 11:20 PM, Ian Lance Taylor <i...@golang.org> wrote:
> 
> On Mon, Feb 22, 2021 at 9:11 PM Peng Yu <pengyu...@gmail.com 
> <mailto:pengyu...@gmail.com>> wrote:
>> 
>> I tried 1.16.
>> 
>> $ go version
>> go version go1.16 darwin/amd64
>> 
>> The problem still exists. When I change mymachine.local to
>> mymachine_local, the problem is gone. So somehow, this is related to
>> host resolution? It might try to DNS lookup the hostname, when it can
>> not find it via DNS then it look up in /etc/hosts?
> 
> On Darwin I believe that by default we pass DNS lookups to the C
> library.  So I think that what you are seeing is the behavior of the C
> library.  Try setting the environment variable GODEBUG=netdns=go.
> 
> Ian
> 
> 
>> On 2/22/21, Ian Lance Taylor <i...@golang.org> wrote:
>>> On Mon, Feb 22, 2021 at 12:22 PM Peng Yu <pengyu...@gmail.com> wrote:
>>>> 
>>>> I run the following go program using net.Dial(). Depending on whether
>>>> I specify a local hostname (defined in /etc/hosts) or an IP. I get
>>>> very different runtimes.
>>>> 
>>>> But `ping mymachine.local` resolves the hostname to an IP address
>>>> instantaneously. So the two calls of the go program should have the
>>>> same runtimes.
>>>> 
>>>> Can anybody reproduce the same runtime problem? Does anybody know what
>>>> is wrong with the implementation of net.Dial()? Thanks.
>>>> 
>>>> $ ./main mymachine.local:22
>>>> 2021/02/22 14:14:25 before
>>>> 2021/02/22 14:14:30 after
>>>> $ ./main 192.168.1.104:22
>>>> 2021/02/22 14:14:30 before
>>>> 2021/02/22 14:14:30 after
>>>> $ cat main.go
>>>> package main
>>>> import (
>>>>  "net"
>>>>  "log"
>>>>  "os"
>>>> )
>>>> 
>>>> func main() {
>>>>  dialAddr := os.Args[1]
>>>>  log.Println("before")
>>>>  _, err := net.Dial("tcp", dialAddr)
>>>>  log.Println("after")
>>>>  if err != nil {
>>>>    log.Fatalln(err)
>>>>  }
>>>> }
>>> 
>>> Which version of Go are you using?  What operating system are you running
>>> on?
>>> 
>>> It is possible that are running into https://golang.org/issue/35305,
>>> which is fixed in 1.16.
>>> 
>>> Ian
>>> 
>> 
>> 
>> --
>> Regards,
>> Peng
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/golang-nuts/CAOyqgcUSpK7sVTcz8-Yy83rGuatMrOn4qqFNA_205_bdUy6taQ%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/golang-nuts/CAOyqgcUSpK7sVTcz8-Yy83rGuatMrOn4qqFNA_205_bdUy6taQ%40mail.gmail.com>.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/78080E79-9B29-42F1-9627-9F8FC16FAA88%40ix.netcom.com.

Reply via email to