Google 云 PubSub/Datastore 错误 13 和 14:"GOAWAY received" 和 "TCP Read/Write Fail"

Google Cloud PubSub/Datastore Error 13 & 14: "GOAWAY received" and "TCP Read/Write Fail"

抱歉,标题太长了。使用 Cloud Functions 将数据从 Cloud PubSub 流式传输到 Cloud Datastore 时,随机弹出一些问题(每隔几个小时,但不是定期,可能是 3 到 8 小时)。

Source 是一个 Node.js6 脚本,它接收带有信息的 HTTP Post,写入 PubSub 主题,然后将主题发布到 Cloud Datastore。

这是修改后的版本: https://github.com/CiscoSE/serverless-cmx

错误:

第一个错误有时会发生在 TCP 写入而不是读取时,但它是相同的错误。

ERROR: { Error: 14 UNAVAILABLE: TCP Read failed
    at Object.exports.createStatusError (/user_code/node_modules/@google-cloud/datastore/node_modules/grpc/src/common.js:87:15)
    at Object.onReceiveStatus (/user_code/node_modules/@google-cloud/datastore/node_modules/grpc/src/client_interceptors.js:1188:28)
    at InterceptingListener._callNext (/user_code/node_modules/@google-cloud/datastore/node_modules/grpc/src/client_interceptors.js:564:42)
    at InterceptingListener.onReceiveStatus (/user_code/node_modules/@google-cloud/datastore/node_modules/grpc/src/client_interceptors.js:614:8)
    at callback (/user_code/node_modules/@google-cloud/datastore/node_modules/grpc/src/client_interceptors.js:841:24)
  code: 14,
  metadata: Metadata { _internal_repr: {} },
  details: 'TCP Read failed' }

并且:

ERROR: { Error: 13 INTERNAL: GOAWAY received
    at Object.exports.createStatusError (/user_code/node_modules/@google-cloud/datastore/node_modules/grpc/src/common.js:87:15)
    at Object.onReceiveStatus (/user_code/node_modules/@google-cloud/datastore/node_modules/grpc/src/client_interceptors.js:1188:28)
    at InterceptingListener._callNext (/user_code/node_modules/@google-cloud/datastore/node_modules/grpc/src/client_interceptors.js:564:42)
    at InterceptingListener.onReceiveStatus (/user_code/node_modules/@google-cloud/datastore/node_modules/grpc/src/client_interceptors.js:614:8)
    at callback (/user_code/node_modules/@google-cloud/datastore/node_modules/grpc/src/client_interceptors.js:841:24)
  code: 13,
  metadata: Metadata { _internal_repr: {} },
  details: 'GOAWAY received' }

看起来 other services 也有类似的错误,解决方法就是重试。