重建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、修改文件路徑。