【问题标题】:Hyperledger fabric Error: 14 UNAVAILABLE: TCP Write failedHyperledger 结构错误:14 不可用:TCP 写入失败
【发布时间】:2019-04-25 23:45:48
【问题描述】:

当链码容器闲置一段时间后,它会因错误而停止:

ERROR [lib/handler.js] Chat stream with peer - on error: "Error: 14 UNAVAILABLE: EOF\n    at createStatusError (/usr/local/src/node_modules/grpc/src/client.js:64:15)\n    at ClientDuplexStream._emitStatusIfDone (/usr/local/src/node_modules/grpc/src/client.js:270:19)\n at ClientDuplexStream._receiveStatus (/usr/local/src/node_modules/grpc/src/client.js:248:8)\n    at /usr/local/src/node_modules/grpc/src/client.js:804:12"

当第一个请求在空闲时间之后出现时,它会给出一个错误

Error: 14 UNAVAILABLE: TCP Write failed

之后第二次请求错误变为以下:

Error: SERVICE_UNAVAILABLE
at ClientDuplexStream.broadcast.on (/app/node_modules/fabric-client/lib/Orderer.js:172:22)
at emitOne (events.js:116:13)
at ClientDuplexStream.emit (events.js:211:7)
at ClientDuplexStream._emitStatusIfDone (/app/node_modules/grpc/src/client.js:236:12)
at ClientDuplexStream._receiveStatus (/app/node_modules/grpc/src/client.js:213:8)
at Object.onReceiveStatus (/app/node_modules/grpc/src/client_interceptors.js:1290:15)
at InterceptingListener._callNext (/app/node_modules/grpc/src/client_interceptors.js:564:42)
at InterceptingListener.onReceiveStatus (/app/node_modules/grpc/src/client_interceptors.js:614:8)
at /app/node_modules/grpc/src/client_interceptors.js:1110:18

从第三个请求开始,一切正常。

我使用的是 fabric-shim 1.2.0,但升级到 1.3.0 后,错误随机出现。

我使用的是 Fabric 1.3.0。

编辑: 将fabric shim升级到1.3.1后,错误变为如下:

error: [Orderer.js]: sendBroadcast - on error: "Error: 14 UNAVAILABLE: TCP Write failed\n    at Object.exports.createStatusError (/app/node_modules/grpc/src/common.js:87:15)\n    at ClientDuplexStream._emitStatusIfDone (/app/node_modules/grpc/src/client.js:235:26)\n    at ClientDuplexStream._receiveStatus (/app/node_modules/grpc/src/client.js:213:8)\n    at Object.onReceiveStatus (/app/node_modules/grpc/src/client_interceptors.js:1290:15)\n    at InterceptingListener._callNext (/app/node_modules/grpc/src/client_interceptors.js:564:42)\n    at InterceptingListener.onReceiveStatus (/app/node_modules/grpc/src/client_interceptors.js:614:8)\n    at /app/node_modules/grpc/src/client_interceptors.js:1110:18"
Error: SERVICE_UNAVAILABLE
    at ClientDuplexStream.broadcast.on (/app/node_modules/fabric-client/lib/Orderer.js:172:22)
    at emitOne (events.js:116:13)
    at ClientDuplexStream.emit (events.js:211:7)
    at ClientDuplexStream._emitStatusIfDone (/app/node_modules/grpc/src/client.js:236:12)
    at ClientDuplexStream._receiveStatus (/app/node_modules/grpc/src/client.js:213:8)
    at Object.onReceiveStatus (/app/node_modules/grpc/src/client_interceptors.js:1290:15)
    at InterceptingListener._callNext (/app/node_modules/grpc/src/client_interceptors.js:564:42)
    at InterceptingListener.onReceiveStatus (/app/node_modules/grpc/src/client_interceptors.js:614:8)
    at /app/node_modules/grpc/src/client_interceptors.js:1110:18

【问题讨论】:

  • 对于fabric 1.3,尝试使用fabric-shim 1.3.1或更高版本的1.3(如果有的话)
  • 好的。我会尝试这样做,但是可以将 fabric-shim 1.3.1 与 fabric 1.3.0 一起使用吗?
  • 是的,可以使用那个版本
  • 我尝试使用fabric-shim 1.3.1,但错误仍然存​​在
  • @HoneyShah 你找到解决这个问题的方法了吗?

标签: hyperledger-fabric hyperledger hyperledger-fabric-sdk-js


【解决方案1】:

首先将您的用户添加到 docker 组

sudo usermod -aG docker $USER

然后更改访问权限

sudo chmod 777 /var/run/docker.sock

【讨论】:

    【解决方案2】:

    这个问题好像和grpc版本变化有关,你能用稳定的grpc版本试试

    【讨论】:

    • 请将建议保留在 cmets 中,并使用答案以获得明确的答案。
    • 您能否建议如何更改 grpc 版本?
    • npm install grpc
    • @kamleshnagware 我还没有手动安装 grpc。我的意思是它内置于 fabric sdk。
    猜你喜欢
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多