As I pointed out, Go does not use the C library. > On Feb 23, 2021, at 7:57 AM, Peng Yu <[email protected]> wrote: > > This does not answer the question why net.Dial can not be made with > the same behavior as ping on MacOSX. If the C library behaves > differently on MacOSX and Linux, then the C library should not be > relied on in this case. I just want to use /etc/hosts but not > resolve.conf. > >> On 2/22/21, robert engels <[email protected]> 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 <[email protected]> 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 <[email protected] >>> <mailto:[email protected]>> wrote: >>> On Mon, Feb 22, 2021 at 9:11 PM Peng Yu <[email protected] >>> <mailto:[email protected]>> 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 <[email protected] <mailto:[email protected]>> >>>> wrote: >>>>> On Mon, Feb 22, 2021 at 12:22 PM Peng Yu <[email protected] >>>>> <mailto:[email protected]>> 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 [email protected] >>> <mailto:[email protected]>. >>> 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>. >> >> > > > -- > 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 [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/CABrM6wkmMj7GgAckj6%3DcHZqd0vxnH0735%2BAc4n7zV%3D%3DBhD4Z8Q%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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/51439421-53DB-4E7B-A591-E29F688AC415%40ix.netcom.com.
