Fabric在阿里云安装出现的一些问题解决

Hyperledger Fabric在阿里云安装出现的一些问题解决

1. [signal SIGSEGV: segmentation violation code=0x1 addr=xxx pc=xxx] 类似的错误:

原始错误的代码(来自peer节点):

1
2
3
4
5
6
7
8
9
10
11
12
13
2018-08-19 22:43:43.665 CST [couchdb] handleRequest -> WARN 016 Retrying couchdb request in 125ms. Attempt:1  Error:Get http://couchdb:5984/: dial tcp 172.18.0.4:5984: getsockopt: connection refused
2018-08-19 22:43:43.790 CST [couchdb] handleRequest -> DEBU 017 HTTP Request: GET / HTTP/1.1 | Host: couchdb:5984 | User-Agent: Go-http-client/1.1 | Accept: multipart/related | Accept-Encoding: gzip | |
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x63 pc=0x7f17e8243259]

runtime stack:
runtime.throw(0xf11259, 0x2a)
/opt/go/src/runtime/panic.go:605 +0x95
runtime.sigpanic()
/opt/go/src/runtime/signal_unix.go:351 +0x2b8

goroutine 88 [syscall, locked to thread]:
runtime.cgocall(0xbf3800, 0xc42028fac8, 0xf0fa21)

解决方法:

修改自己阿里云ecs机器里面的/etc/resolv.conf,把里面的 options timeout:2 attempts:3 rotate single-request-reopen 这一行内容注释掉 :
例如我的/etc/resolv.conf :

1
2
3
4
5
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 100.100.2.136
nameserver 100.100.2.138
#options timeout:2 attempts:3 rotate single-request-reopen

然后问题就解决了

原因解析:

这个问题是出在go的DNS解析问题,由于go的Resolver不支持options single-request-reopen从而走了CGO Resolver方法导致失败了,因此只需要把/etc/resolv.conf里面的single-request-reopen这一行注释掉即可

参考为什么通过CGO Resolver失败的原因: Static Cgo Builds, What Could Go Wrong?

生活再忙,也不要忘记生活原本简单的样子
0%