Still, if you follow that article I referred you to it may fix your issue - as the resolv.conf is auto-generated on OSX and includes hostname mappings.
> On Feb 22, 2021, at 11:48 PM, robert engels <reng...@ix.netcom.com> wrote: > > It looks like the Go runtime implements its own DNS client on *unix platforms > including OSX. > >> On Feb 22, 2021, at 11:40 PM, Peng Yu <pengyu...@gmail.com >> <mailto:pengyu...@gmail.com>> wrote: >> >> I don’t understand why ping does not have the same problem. Ping is not >> based on C library? >> >> On Mon, Feb 22, 2021 at 11:20 PM Ian Lance Taylor <i...@golang.org >> <mailto: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 <mailto:i...@golang.org>> >> > wrote: >> > > On Mon, Feb 22, 2021 at 12:22 PM Peng Yu <pengyu...@gmail.com >> > > <mailto: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 <http://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 >> > > <https://golang.org/issue/35305>, >> > > which is fixed in 1.16. >> > > >> > > Ian >> > > >> > >> > >> > -- >> > Regards, >> > Peng >> -- >> 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 >> <mailto:golang-nuts+unsubscr...@googlegroups.com>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/golang-nuts/CABrM6w%3D8Orgj3t4MW3%3DMs7L0vy0nFS_EeGjRZ8n%2BTvQOrHAO9g%40mail.gmail.com >> >> <https://groups.google.com/d/msgid/golang-nuts/CABrM6w%3D8Orgj3t4MW3%3DMs7L0vy0nFS_EeGjRZ8n%2BTvQOrHAO9g%40mail.gmail.com?utm_medium=email&utm_source=footer>. > -- 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/DCAD440F-746D-4EA6-B3E5-5238C0F6F421%40ix.netcom.com.