重建orderer报错:
2019-11-14 14:42:12.520 CST [orderer.common.server] extractSysChanLastConfig -> INFO 003 Not bootstrapping because of 1 existing channels
2019-11-14 14:42:12.520 CST [fsblkstorage] newBlockfileMgr -> INFO 004 Getting block information from block storage
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x9ed5e9]
goroutine 1 [running]:
github.com/hyperledger/fabric/protos/utils.GetMetadataFromBlock(0x0, 0x1, 0x0, 0x194, 0x1b8f970)
/opt/gopath/src/github.com/hyperledger/fabric/protos/utils/blockutils.go:55 +0x39
github.com/hyperledger/fabric/protos/utils.GetLastConfigIndexFromBlock(0x0, 0xc000232360, 0xffffffffffffffff, 0x0)
/opt/gopath/src/github.com/hyperledger/fabric/protos/utils/blockutils.go:75 +0x37
查看机器上的orderer文件目录:
[apps@sd1-qukuailiandb-test svr]$ ls /var/hyperledger/order_data/orderer/chains/
mychannel/ testchainid/
果然发现有两个已经存在的channel目录,再看docker-compose-orderer.yaml 配置文件:
原来在配置中对orderer文件做了映射,映射到了本地目录。本地目录重建,就会报这个错。
解决办法:
1、删除目录下的orderer遗留文件;
2、修改文件路径。