遇到奇怪的問題

在我的 MAC 上跑 server 在連 local db 時出現 dial tcp: i/o timeout 錯誤

其他人環境都沒遇到

local db 是 docker 起的

port 有 bind 到 MAC 上

所以用其他 mongo db client 連線都能正常

連線是使用 dnsname:27017

所以 MAC 上 /etc/hosts 要加上 127.0.0.1   dnsname 這樣才知道是連到本機

經過一番查找終於找到問題

golang resolve DNS name 有兩種, 一個是 go resolver 一個是 cgo resolver

ref: https://golang.org/pkg/net/

不確定自己是用哪種可以用 export GODEBUG=netdns=1 確認一下

ex: go package net: using cgo DNS resolver

然後我發現出錯時是在我使用 cgo resolver

不知道幫我解到什麼位址去了.. (沒有再細查 cgo 為什麼解錯, 也許有好心人可以告訴我XD)

改成用 go resolver 就好了

ex:

export GODEBUG=netdns=go

arrow
arrow
    全站熱搜

    JohnDX 發表在 痞客邦 留言(0) 人氣()