On Mon, Feb 22, 2021 at 9:11 PM Peng Yu <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.

Reply via email to